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