|
@@ -89,8 +89,10 @@ static int pfn_array_alloc_pin(struct pfn_array *pa, struct device *mdev,
|
|
|
sizeof(*pa->pa_iova_pfn) +
|
|
sizeof(*pa->pa_iova_pfn) +
|
|
|
sizeof(*pa->pa_pfn),
|
|
sizeof(*pa->pa_pfn),
|
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
|
- if (unlikely(!pa->pa_iova_pfn))
|
|
|
|
|
|
|
+ if (unlikely(!pa->pa_iova_pfn)) {
|
|
|
|
|
+ pa->pa_nr = 0;
|
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
+ }
|
|
|
pa->pa_pfn = pa->pa_iova_pfn + pa->pa_nr;
|
|
pa->pa_pfn = pa->pa_iova_pfn + pa->pa_nr;
|
|
|
|
|
|
|
|
pa->pa_iova_pfn[0] = pa->pa_iova >> PAGE_SHIFT;
|
|
pa->pa_iova_pfn[0] = pa->pa_iova >> PAGE_SHIFT;
|