]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
iproute2: act_ipt fix xtables breakage on older versions.
authorAlexander Duyck <alexander.h.duyck@intel.com>
Mon, 29 Apr 2013 05:50:13 +0000 (05:50 +0000)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 1 May 2013 15:01:47 +0000 (08:01 -0700)
In trying to build on a RHEL6.3 I ran into several build issues that are
addressed in this patch.

The first is that xtables_merge_options only has 3 parameters.  It appears
this is how this code was originally.  As such for the case where the version
is less than 6 I am assuming it would be correct to maintain the original
setup that only had 3 parameters being passed instead of 4.

I also ran into an issue with the define for __ALIGN_KERNEL not being present.
I believe this may be due to the fact that __ALIGN_KERNEL was moved into a
separate header from ALIGN after the UAPI changes.  In order to just cover all
of the bases I have moved the main definition for the macros into
__ALIGN_KERNEL_MASK and __ALIGN_KERNEL and if ALIGN is also needed then it is
just a direct redefine to __ALIGN_KERNEL.

Cc: Hasan Chowdhury <shemonc@gmail.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
tc/m_xt.c

index 3edf5205f8688fc586eada05a93f4d8b9008b3b7..e918670935bbb54c25cfce489d0cf2b3e916e9c5 100644 (file)
--- a/tc/m_xt.c
+++ b/tc/m_xt.c
 #       define XT_LIB_DIR "/lib/xtables"
 #endif
 
+#ifndef __ALIGN_KERNEL
+#define __ALIGN_KERNEL(x, a)           __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL_MASK(x, mask)   (((x) + (mask)) & ~(mask))
+#endif
+
 #ifndef ALIGN
-#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))
 #endif
 
 static const char *tname = "mangle";
@@ -166,8 +170,7 @@ static int parse_ipt(struct action_util *a,int *argc_p,
                                                    m->x6_options,
                                                    &m->option_offset);
 #else
-                       opts = xtables_merge_options(tcipt_globals.orig_opts,
-                                                    tcipt_globals.opts,
+                       opts = xtables_merge_options(tcipt_globals.opts,
                                                     m->extra_opts,
                                                     &m->option_offset);
 #endif
@@ -335,8 +338,7 @@ print_ipt(struct action_util *au,FILE * f, struct rtattr *arg)
                                            m->x6_options,
                                            &m->option_offset);
 #else
-               opts = xtables_merge_options(tcipt_globals.orig_opts,
-                                            tcipt_globals.opts,
+               opts = xtables_merge_options(tcipt_globals.opts,
                                             m->extra_opts,
                                             &m->option_offset);
 #endif