I'm happy with stuff as it is: the ifdefs make it easy to figure
which version does the backport apply.

BTW, I think the same backport will be needed for older kernels as well, no?


Quoting Hoang-Nam Nguyen <[EMAIL PROTECTED]>:
Subject: Re: [PATCH ofed-1.2.c] ehca: backport kmem_cache_zalloc() for 
2.6.10/sles10/sles10_sp1

Hello Michael!
Below is the patch to backport kmem_cache_zalloc() for 2.6.16/sles10/sles10_sp1
as we've discussed previously. Thereby I realized current backport code
in slab.h looks weird to me (sort of copy&paste mixture) - actually no build
error, only coding "issue". 
Therefore this patch also includes some cleanup. If it's ok, please apply.
PS: The mentioned issue in backport slab.h exists also in other versions.
If you want me to fix them as well, let me know.
Regards
Nam


backport kmem_cache_zalloc() in slab.h to 2.6.10, 2.6.10_sles10 and 
2.6.10_sles10_sp1

Signed-off-by: Hoang-Nam Nguyen <[EMAIL PROTECTED]>
---

 2.6.16/include/linux/slab.h            |   22 +++++++---------------
 2.6.16_sles10/include/linux/slab.h     |   22 +++++++---------------
 2.6.16_sles10_sp1/include/linux/slab.h |   22 +++++++---------------
 3 files changed, 21 insertions(+), 45 deletions(-)

diff -Nurp 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16/include/linux/slab.h
 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16/include/linux/slab.h
--- 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16/include/linux/slab.h
      2007-08-04 11:00:08.000000000 +0200
+++ 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16/include/linux/slab.h
   2007-08-06 18:29:17.000000000 +0200
@@ -1,10 +1,8 @@
-#include_next <linux/slab.h>
+#ifndef _LINUX_SLAB_BACKPORT_TO_2_6_16
+#define _LINUX_SLAB_BACKPORT_TO_2_6_16
 
 #include_next <linux/slab.h>
 
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
 void *kmemdup(const void *src, size_t len, gfp_t gfp)
 {
@@ -16,19 +14,13 @@ void *kmemdup(const void *src, size_t le
        return p;
 }
 
-#endif
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
-void *kmemdup(const void *src, size_t len, gfp_t gfp)
+void *kmem_cache_zalloc(struct kmem_cache *cache, gfp_t flags)
 {
-       void *p;
-
-       p = kmalloc(len, gfp);
-       if (p)
-               memcpy(p, src, len);
-       return p;
+       void *ret = kmem_cache_alloc(cache, flags);
+       if (ret)
+               memset(ret, 0, kmem_cache_size(cache));
+       return ret;
 }
 
 #endif
diff -Nurp 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16_sles10/include/linux/slab.h
 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16_sles10/include/linux/slab.h
--- 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16_sles10/include/linux/slab.h
       2007-08-04 11:00:08.000000000 +0200
+++ 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16_sles10/include/linux/slab.h
    2007-08-06 18:30:33.000000000 +0200
@@ -1,10 +1,8 @@
-#include_next <linux/slab.h>
+#ifndef _LINUX_SLAB_BACKPORT_TO_2_6_16
+#define _LINUX_SLAB_BACKPORT_TO_2_6_16
 
 #include_next <linux/slab.h>
 
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
 void *kmemdup(const void *src, size_t len, gfp_t gfp)
 {
@@ -16,19 +14,13 @@ void *kmemdup(const void *src, size_t le
        return p;
 }
 
-#endif
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
-void *kmemdup(const void *src, size_t len, gfp_t gfp)
+void *kmem_cache_zalloc(struct kmem_cache *cache, gfp_t flags)
 {
-       void *p;
-
-       p = kmalloc(len, gfp);
-       if (p)
-               memcpy(p, src, len);
-       return p;
+       void *ret = kmem_cache_alloc(cache, flags);
+       if (ret)
+               memset(ret, 0, kmem_cache_size(cache));
+       return ret;
 }
 
 #endif
diff -Nurp 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16_sles10_sp1/include/linux/slab.h
 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16_sles10_sp1/include/linux/slab.h
--- 
ofa_1_2_c_kernel-20070804-0200_orig/kernel_addons/backport/2.6.16_sles10_sp1/include/linux/slab.h
   2007-08-04 11:00:08.000000000 +0200
+++ 
ofa_1_2_c_kernel-20070804-0200/kernel_addons/backport/2.6.16_sles10_sp1/include/linux/slab.h
        2007-08-06 18:30:40.000000000 +0200
@@ -1,10 +1,8 @@
-#include_next <linux/slab.h>
+#ifndef _LINUX_SLAB_BACKPORT_TO_2_6_16
+#define _LINUX_SLAB_BACKPORT_TO_2_6_16
 
 #include_next <linux/slab.h>
 
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
 void *kmemdup(const void *src, size_t len, gfp_t gfp)
 {
@@ -16,19 +14,13 @@ void *kmemdup(const void *src, size_t le
        return p;
 }
 
-#endif
-#ifndef BACKPORT_LINUX_STRING_TO_2_6_18
-#define BACKPORT_LINUX_STRING_TO_2_6_18
-
 static inline
-void *kmemdup(const void *src, size_t len, gfp_t gfp)
+void *kmem_cache_zalloc(struct kmem_cache *cache, gfp_t flags)
 {
-       void *p;
-
-       p = kmalloc(len, gfp);
-       if (p)
-               memcpy(p, src, len);
-       return p;
+       void *ret = kmem_cache_alloc(cache, flags);
+       if (ret)
+               memset(ret, 0, kmem_cache_size(cache));
+       return ret;
 }
 
 #endif

-- 
MST
_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to