On Fri, Jan 20, 2006 at 11:49:46AM -0500, Linus Torvalds wrote: > On Fri, 20 Jan 2006, Benoit Boissinot wrote: > > > > On x86 (32bits), i have the same i think: > > Interestingly, __alignof__(unsigned long long) is 8 these days, even > though I think historically on x86 it was 4. Is this perhaps different in > gcc-3 and gcc-4? The problem seems to have been accidentially introduced by DaveM's "simplification" of my original patch. I've already asked Dave to revert his change and apply my original patch (see attachment), which _should_ fix the problem. Thanks, -- - Harald Welte <[email protected]> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie
[NETFILTER] x_tables: Fix XT_ALIGN() macro on [at least] ppc32 To keep backwards compatibility with old iptables userspace programs, the new XT_ALIGN macro always has to return the same value as IPT_ALIGN, IP6T_ALIGN or ARPT_ALIGN in previous kernels. However, in those kernels the macro was defined in dependency to the respective layer3 specifi data structures, which we can no longer do with x_tables. The fix is an ugly kludge, but it has been tested to solve the problem. Yet another reason to move away from the current {ip,ip6,arp,eb}tables like data structures. Signed-off-by: Harald Welte <[email protected]> --- commit 470faeb379560fe877b685ca69be6a7e4f0e91ed tree 5732ecd9bcab28469805752514e5c57ba26189a1 parent 44718bbfa186d58477163418d37df173aa2dd079 author Harald Welte <[email protected]> Fri, 20 Jan 2006 01:44:24 +0100 committer Harald Welte <[email protected]> Fri, 20 Jan 2006 01:44:24 +0100 include/linux/netfilter/x_tables.h | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index 472f048..65f9cd8 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h @@ -19,7 +19,20 @@ struct xt_get_revision /* For standard target */ #define XT_RETURN (-NF_REPEAT - 1) -#define XT_ALIGN(s) (((s) + (__alignof__(void *)-1)) & ~(__alignof__(void *)-1)) +/* this is a dummy structure to find out the alignment requirement for a struct + * containing all the fundamental data types that are used in ipt_entry, ip6t_entry + * and arpt_entry. This sucks, and it is a hack. It will be my personal pleasure + * to remove it -HW */ +struct _xt_align +{ + u_int8_t u8; + u_int16_t u16; + u_int32_t u32; + u_int64_t u64; +}; + +#define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) \ + & ~(__alignof__(struct _xt_align)-1)) /* Standard return verdict, or do jump. */ #define XT_STANDARD_TARGET ""
Attachment:
pgpjV3EYe3VYK.pgp
Description: PGP signature
- Follow-Ups:
- Re: Iptables error
- From: "David S. Miller" <[email protected]>
- Re: Iptables error
- References:
- 2.6.16-rc1-mm2
- From: Andrew Morton <[email protected]>
- Iptables error [Was: 2.6.16-rc1-mm2]
- From: "Jiri Slaby" <[email protected]>
- Re: Iptables error [Was: 2.6.16-rc1-mm2]
- From: Harald Welte <[email protected]>
- Re: Iptables error [Was: 2.6.16-rc1-mm2]
- From: Benoit Boissinot <[email protected]>
- Re: Iptables error [Was: 2.6.16-rc1-mm2]
- From: Linus Torvalds <[email protected]>
- 2.6.16-rc1-mm2
- Prev by Date: Re: Development tree, PLEASE?
- Next by Date: Re: GPL V3 and Linux
- Previous by thread: Re: Iptables error [Was: 2.6.16-rc1-mm2]
- Next by thread: Re: Iptables error
- Index(es):