]> err.no Git - linux-2.6/blobdiff - mm/vmalloc.c
V4L/DVB (5836): dvb-ttpci: re-initialize aspect ratio and pan scan after arm crash
[linux-2.6] / mm / vmalloc.c
index ddf87145cc49e0dc3d4e6e74f157b6a5e2e08f5c..8e05a11155c9208e6daf17644168929105e433da 100644 (file)
@@ -432,11 +432,12 @@ void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
        area->nr_pages = nr_pages;
        /* Please note that the recursion is strictly bounded. */
        if (array_size > PAGE_SIZE) {
-               pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node);
+               pages = __vmalloc_node(array_size, gfp_mask | __GFP_ZERO,
+                                       PAGE_KERNEL, node);
                area->flags |= VM_VPAGES;
        } else {
                pages = kmalloc_node(array_size,
-                               (gfp_mask & GFP_LEVEL_MASK),
+                               (gfp_mask & GFP_LEVEL_MASK) | __GFP_ZERO,
                                node);
        }
        area->pages = pages;
@@ -445,7 +446,6 @@ void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
                kfree(area);
                return NULL;
        }
-       memset(area->pages, 0, array_size);
 
        for (i = 0; i < area->nr_pages; i++) {
                if (node < 0)