From: Alexander Duyck Date: Mon, 29 Apr 2013 05:50:13 +0000 (+0000) Subject: iproute2: act_ipt fix xtables breakage on older versions. X-Git-Tag: v3.10.0~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cfa292defaf939c383b026e258815e2b87428ee1;p=thirdparty%2Fiproute2.git iproute2: act_ipt fix xtables breakage on older versions. 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 Cc: Jamal Hadi Salim Signed-off-by: Alexander Duyck Signed-off-by: Jamal Hadi Salim --- diff --git a/tc/m_xt.c b/tc/m_xt.c index 3edf5205f..e91867093 100644 --- a/tc/m_xt.c +++ b/tc/m_xt.c @@ -38,9 +38,13 @@ # 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