diff options
author | Florian Westphal <fw@strlen.de> | 2015-05-03 22:05:28 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-05-14 12:43:48 +0200 |
commit | 7fb48c5bc3100f7674a8e26f42c1518196500728 (patch) | |
tree | 92bf44e222b6c7e8c604366fd35823d5872ca2a6 /include | |
parent | a9756e6f63518c6da319904ded5050ec1780b800 (diff) | |
download | linux-stable-7fb48c5bc3100f7674a8e26f42c1518196500728.tar.gz linux-stable-7fb48c5bc3100f7674a8e26f42c1518196500728.tar.bz2 linux-stable-7fb48c5bc3100f7674a8e26f42c1518196500728.zip |
netfilter: bridge: neigh_head and physoutdev can't be used at same time
The neigh_header is only needed when we detect DNAT after prerouting
and neigh cache didn't have a mac address for us.
The output port has not been chosen yet so we can re-use the storage
area, bringing struct size down to 32 bytes on x86_64.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/skbuff.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index c0b574a414e7..3d932e64125a 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -170,12 +170,14 @@ struct nf_bridge_info { BRNF_PROTO_UNCHANGED, BRNF_PROTO_8021Q, BRNF_PROTO_PPPOE - } orig_proto; + } orig_proto:8; bool pkt_otherhost; unsigned int mask; struct net_device *physindev; - struct net_device *physoutdev; - char neigh_header[8]; + union { + struct net_device *physoutdev; + char neigh_header[8]; + }; }; #endif |