|
@@ -108,6 +108,10 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
|
|
|
struct page_info *info;
|
|
struct page_info *info;
|
|
|
int i;
|
|
int i;
|
|
|
|
|
|
|
|
|
|
+ info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
|
|
|
|
|
+ if (!info)
|
|
|
|
|
+ return NULL;
|
|
|
|
|
+
|
|
|
for (i = 0; i < num_orders; i++) {
|
|
for (i = 0; i < num_orders; i++) {
|
|
|
if (size < order_to_size(orders[i]))
|
|
if (size < order_to_size(orders[i]))
|
|
|
continue;
|
|
continue;
|
|
@@ -118,11 +122,12 @@ static struct page_info *alloc_largest_available(struct ion_system_heap *heap,
|
|
|
if (!page)
|
|
if (!page)
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
- info = kmalloc(sizeof(struct page_info), GFP_KERNEL);
|
|
|
|
|
info->page = page;
|
|
info->page = page;
|
|
|
info->order = orders[i];
|
|
info->order = orders[i];
|
|
|
return info;
|
|
return info;
|
|
|
}
|
|
}
|
|
|
|
|
+ kfree(info);
|
|
|
|
|
+
|
|
|
return NULL;
|
|
return NULL;
|
|
|
}
|
|
}
|
|
|
|
|
|