[kernel] fixup 2.6.34 kernel headers to properly export XT_ALIGN() to userspace
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 13 Aug 2010 16:04:40 +0000 (16:04 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 13 Aug 2010 16:04:40 +0000 (16:04 +0000)
Ref: http://lkml.org/lkml/2010/4/13/118

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22621 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/patches-2.6.34/200-netfilter_xtables_align.patch [new file with mode: 0644]

diff --git a/target/linux/generic/patches-2.6.34/200-netfilter_xtables_align.patch b/target/linux/generic/patches-2.6.34/200-netfilter_xtables_align.patch
new file mode 100644 (file)
index 0000000..f25e2c8
--- /dev/null
@@ -0,0 +1,50 @@
+--- a/include/linux/kernel.h
++++ b/include/linux/kernel.h
+@@ -4,6 +4,8 @@
+ /*
+  * 'kernel.h' contains some often-used function prototypes etc
+  */
++#define __ALIGN_KERNEL(x, a)          __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
++#define __ALIGN_KERNEL_MASK(x, mask)  (((x) + (mask)) & ~(mask))
+ #ifdef __KERNEL__
+@@ -37,8 +39,8 @@ extern const char linux_proc_banner[];
+ #define STACK_MAGIC   0xdeadbeef
+-#define ALIGN(x,a)            __ALIGN_MASK(x,(typeof(x))(a)-1)
+-#define __ALIGN_MASK(x,mask)  (((x)+(mask))&~(mask))
++#define ALIGN(x, a)           __ALIGN_KERNEL((x), (a))
++#define __ALIGN_MASK(x, mask) __ALIGN_KERNEL_MASK((x), (mask))
+ #define PTR_ALIGN(p, a)               ((typeof(p))ALIGN((unsigned long)(p), (a)))
+ #define IS_ALIGNED(x, a)              (((x) & ((typeof(x))(a) - 1)) == 0)
+--- a/include/linux/netfilter/x_tables.h
++++ b/include/linux/netfilter/x_tables.h
+@@ -1,6 +1,6 @@
+ #ifndef _X_TABLES_H
+ #define _X_TABLES_H
+-
++#include <linux/kernel.h>
+ #include <linux/types.h>
+ #define XT_FUNCTION_MAXNAMELEN 30
+@@ -93,7 +93,7 @@ struct _xt_align {
+       __u64 u64;
+ };
+-#define XT_ALIGN(s) ALIGN((s), __alignof__(struct _xt_align))
++#define XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _xt_align))
+ /* Standard return verdict, or do jump. */
+ #define XT_STANDARD_TARGET ""
+@@ -598,7 +598,7 @@ struct _compat_xt_align {
+       compat_u64 u64;
+ };
+-#define COMPAT_XT_ALIGN(s) ALIGN((s), __alignof__(struct _compat_xt_align))
++#define COMPAT_XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _compat_xt_align))
+ extern void xt_compat_lock(u_int8_t af);
+ extern void xt_compat_unlock(u_int8_t af);