]> git.proxmox.com Git - mirror_spl.git/commitdiff
Make sure that when calling __vmem_alloc that we
authorwartens2 <wartens2@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Thu, 24 Apr 2008 17:07:56 +0000 (17:07 +0000)
committerwartens2 <wartens2@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Thu, 24 Apr 2008 17:07:56 +0000 (17:07 +0000)
do not have __GFP_ZERO set.  Once the memory is allocated
then zero out the memory if __GFP_ZERO is passed to
__vmem_alloc.

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@88 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c

include/sys/kmem.h

index 7af10f9a455415cbae92646975d3bb1571a1bcd7..a02bdcbffe716b88ae32880bc57c22d36396f802 100644 (file)
@@ -72,14 +72,17 @@ extern int kmem_warning_flag;
                                                                               \
        ASSERT(flags & KM_SLEEP);                                             \
                                                                               \
-        _ptr_ = (void *)__vmalloc((size), ((flags) |                          \
-                                  __GFP_HIGHMEM), PAGE_KERNEL);               \
+        _ptr_ = (void *)__vmalloc((size), (((flags) |                         \
+                                  __GFP_HIGHMEM) &                            \
+                                 ~__GFP_ZERO), PAGE_KERNEL);                 \
         if (_ptr_ == NULL) {                                                  \
                 printk("spl: Warning vmem_alloc(%d, 0x%x) failed at %s:%d "   \
                       "(%ld/%ld)\n", (int)(size), (int)(flags),              \
                       __FILE__, __LINE__,                                    \
                       atomic64_read(&vmem_alloc_used), vmem_alloc_max);      \
         } else {                                                              \
+                if (flags & __GFP_ZERO)                                       \
+                        memset(_ptr_, 0, (size));                             \
                 atomic64_add((size), &vmem_alloc_used);                       \
                 if (unlikely(atomic64_read(&vmem_alloc_used)>vmem_alloc_max)) \
                         vmem_alloc_max = atomic64_read(&vmem_alloc_used);     \