rds backport: fix for double-def of assert_spin_locked in RHEL4_U4/5/6/7 Any RHEL 4 infiniband app which includes jbd.h will get a compilation error of double-definition of macro assert_spin_locked.
This fix was suggested by Brian Murrell of Sun. This fixes bugzilla 1655. Signed_off_by: Jack Morgenstein <ja...@dev.mellanox.co.il> --- Andy, There is a requirement for Lustre to fix bug 1655 in ofed 1.4.2. https://bugs.openfabrics.org/show_bug.cgi?id=1655 In keeping with Brian Murrell's suggestion in comment #5 (to move the assert_spin_locked definition out of the spinlock.h backport addons (for RHEL U4,5,6,7) and put it closer to the C code that actually uses it), I propose moving the assert_spin_locked definition from the spinlock.h addons files to file net/rds/rdma.h (just after including rds.h) (done via an addition to patch file rds_to_2_6_9.patch). The patch is below. PLEASE VERIFY AND OK THIS PATCH ASAP, so that I may check it in to the OFED 1.4.2 git before release. (I have checked only compilation on RHEL_U4/7 on X86_64). Thanks! diff --git a/kernel_addons/backport/2.6.9_U4/include/linux/spinlock.h b/kernel_addons/backport/2.6.9_U4/include/linux/spinlock.h index 0d24ba3..8b2b892 100644 --- a/kernel_addons/backport/2.6.9_U4/include/linux/spinlock.h +++ b/kernel_addons/backport/2.6.9_U4/include/linux/spinlock.h @@ -6,6 +6,4 @@ #define spin_lock_nested(lock, subclass) spin_lock(lock) -#define assert_spin_locked(lock) do { (void)(lock); } while(0) - #endif diff --git a/kernel_addons/backport/2.6.9_U5/include/linux/spinlock.h b/kernel_addons/backport/2.6.9_U5/include/linux/spinlock.h index 0d24ba3..8b2b892 100644 --- a/kernel_addons/backport/2.6.9_U5/include/linux/spinlock.h +++ b/kernel_addons/backport/2.6.9_U5/include/linux/spinlock.h @@ -6,6 +6,4 @@ #define spin_lock_nested(lock, subclass) spin_lock(lock) -#define assert_spin_locked(lock) do { (void)(lock); } while(0) - #endif diff --git a/kernel_addons/backport/2.6.9_U6/include/linux/spinlock.h b/kernel_addons/backport/2.6.9_U6/include/linux/spinlock.h index 665f011..4e22280 100644 --- a/kernel_addons/backport/2.6.9_U6/include/linux/spinlock.h +++ b/kernel_addons/backport/2.6.9_U6/include/linux/spinlock.h @@ -5,6 +5,4 @@ #define spin_lock_nested(lock, subclass) spin_lock(lock) -#define assert_spin_locked(lock) do { (void)(lock); } while(0) - #endif diff --git a/kernel_addons/backport/2.6.9_U7/include/linux/spinlock.h b/kernel_addons/backport/2.6.9_U7/include/linux/spinlock.h index 665f011..4e22280 100644 --- a/kernel_addons/backport/2.6.9_U7/include/linux/spinlock.h +++ b/kernel_addons/backport/2.6.9_U7/include/linux/spinlock.h @@ -5,6 +5,4 @@ #define spin_lock_nested(lock, subclass) spin_lock(lock) -#define assert_spin_locked(lock) do { (void)(lock); } while(0) - #endif diff --git a/kernel_patches/backport/2.6.9_U4/rds_to_2_6_9.patch b/kernel_patches/backport/2.6.9_U4/rds_to_2_6_9.patch index d3e2cb9..e260242 100644 --- a/kernel_patches/backport/2.6.9_U4/rds_to_2_6_9.patch +++ b/kernel_patches/backport/2.6.9_U4/rds_to_2_6_9.patch @@ -32,3 +32,18 @@ Index: ofed_kernel/net/rds/rds.h #ifdef ATOMIC64_INIT #define KERNEL_HAS_ATOMIC64 +diff --git a/net/rds/rdma.h b/net/rds/rdma.h +index 4255120..8c35e7f 100644 +--- a/net/rds/rdma.h ++++ b/net/rds/rdma.h +@@ -7,6 +7,10 @@ + + #include "rds.h" + ++#ifndef assert_spin_locked ++#define assert_spin_locked(lock) do { (void)(lock); } while(0) ++#endif ++ + struct rds_mr { + struct rb_node r_rb_node; + atomic_t r_refcount; diff --git a/kernel_patches/backport/2.6.9_U5/rds_to_2_6_9.patch b/kernel_patches/backport/2.6.9_U5/rds_to_2_6_9.patch index d3e2cb9..e260242 100644 --- a/kernel_patches/backport/2.6.9_U5/rds_to_2_6_9.patch +++ b/kernel_patches/backport/2.6.9_U5/rds_to_2_6_9.patch @@ -32,3 +32,18 @@ Index: ofed_kernel/net/rds/rds.h #ifdef ATOMIC64_INIT #define KERNEL_HAS_ATOMIC64 +diff --git a/net/rds/rdma.h b/net/rds/rdma.h +index 4255120..8c35e7f 100644 +--- a/net/rds/rdma.h ++++ b/net/rds/rdma.h +@@ -7,6 +7,10 @@ + + #include "rds.h" + ++#ifndef assert_spin_locked ++#define assert_spin_locked(lock) do { (void)(lock); } while(0) ++#endif ++ + struct rds_mr { + struct rb_node r_rb_node; + atomic_t r_refcount; diff --git a/kernel_patches/backport/2.6.9_U6/rds_to_2_6_9.patch b/kernel_patches/backport/2.6.9_U6/rds_to_2_6_9.patch index d3e2cb9..e260242 100644 --- a/kernel_patches/backport/2.6.9_U6/rds_to_2_6_9.patch +++ b/kernel_patches/backport/2.6.9_U6/rds_to_2_6_9.patch @@ -32,3 +32,18 @@ Index: ofed_kernel/net/rds/rds.h #ifdef ATOMIC64_INIT #define KERNEL_HAS_ATOMIC64 +diff --git a/net/rds/rdma.h b/net/rds/rdma.h +index 4255120..8c35e7f 100644 +--- a/net/rds/rdma.h ++++ b/net/rds/rdma.h +@@ -7,6 +7,10 @@ + + #include "rds.h" + ++#ifndef assert_spin_locked ++#define assert_spin_locked(lock) do { (void)(lock); } while(0) ++#endif ++ + struct rds_mr { + struct rb_node r_rb_node; + atomic_t r_refcount; diff --git a/kernel_patches/backport/2.6.9_U7/rds_to_2_6_9.patch b/kernel_patches/backport/2.6.9_U7/rds_to_2_6_9.patch index d3e2cb9..e260242 100644 --- a/kernel_patches/backport/2.6.9_U7/rds_to_2_6_9.patch +++ b/kernel_patches/backport/2.6.9_U7/rds_to_2_6_9.patch @@ -32,3 +32,18 @@ Index: ofed_kernel/net/rds/rds.h #ifdef ATOMIC64_INIT #define KERNEL_HAS_ATOMIC64 +diff --git a/net/rds/rdma.h b/net/rds/rdma.h +index 4255120..8c35e7f 100644 +--- a/net/rds/rdma.h ++++ b/net/rds/rdma.h +@@ -7,6 +7,10 @@ + + #include "rds.h" + ++#ifndef assert_spin_locked ++#define assert_spin_locked(lock) do { (void)(lock); } while(0) ++#endif ++ + struct rds_mr { + struct rb_node r_rb_node; + atomic_t r_refcount; _______________________________________________ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg