Commit dd7862a2 authored by Bart De Schuymer's avatar Bart De Schuymer Committed by David S. Miller

[BRIDGE]: Always copy and save the vlan header in bridge-nf.

parent 2831834d
...@@ -71,12 +71,10 @@ static inline ...@@ -71,12 +71,10 @@ static inline
void nf_bridge_maybe_copy_header(struct sk_buff *skb) void nf_bridge_maybe_copy_header(struct sk_buff *skb)
{ {
if (skb->nf_bridge) { if (skb->nf_bridge) {
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
if (skb->protocol == __constant_htons(ETH_P_8021Q)) { if (skb->protocol == __constant_htons(ETH_P_8021Q)) {
memcpy(skb->data - 18, skb->nf_bridge->hh, 18); memcpy(skb->data - 18, skb->nf_bridge->hh, 18);
skb_push(skb, 4); skb_push(skb, 4);
} else } else
#endif
memcpy(skb->data - 16, skb->nf_bridge->hh, 16); memcpy(skb->data - 16, skb->nf_bridge->hh, 16);
} }
} }
...@@ -86,10 +84,9 @@ void nf_bridge_save_header(struct sk_buff *skb) ...@@ -86,10 +84,9 @@ void nf_bridge_save_header(struct sk_buff *skb)
{ {
int header_size = 16; int header_size = 16;
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
if (skb->protocol == __constant_htons(ETH_P_8021Q)) if (skb->protocol == __constant_htons(ETH_P_8021Q))
header_size = 18; header_size = 18;
#endif
memcpy(skb->nf_bridge->hh, skb->data - header_size, header_size); memcpy(skb->nf_bridge->hh, skb->data - header_size, header_size);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment