diff options
| -rw-r--r-- | net/bridge/br_input.c | 1 | ||||
| -rw-r--r-- | net/bridge/br_netfilter_hooks.c | 21 |
2 files changed, 1 insertions, 21 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 236f34244dbe..013f2290bfa5 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c | |||
| @@ -30,6 +30,7 @@ EXPORT_SYMBOL(br_should_route_hook); | |||
| 30 | static int | 30 | static int |
| 31 | br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb) | 31 | br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb) |
| 32 | { | 32 | { |
| 33 | br_drop_fake_rtable(skb); | ||
| 33 | return netif_receive_skb(skb); | 34 | return netif_receive_skb(skb); |
| 34 | } | 35 | } |
| 35 | 36 | ||
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c index 95087e6e8258..fa87fbd62bb7 100644 --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c | |||
| @@ -521,21 +521,6 @@ static unsigned int br_nf_pre_routing(void *priv, | |||
| 521 | } | 521 | } |
| 522 | 522 | ||
| 523 | 523 | ||
| 524 | /* PF_BRIDGE/LOCAL_IN ************************************************/ | ||
| 525 | /* The packet is locally destined, which requires a real | ||
| 526 | * dst_entry, so detach the fake one. On the way up, the | ||
| 527 | * packet would pass through PRE_ROUTING again (which already | ||
| 528 | * took place when the packet entered the bridge), but we | ||
| 529 | * register an IPv4 PRE_ROUTING 'sabotage' hook that will | ||
| 530 | * prevent this from happening. */ | ||
| 531 | static unsigned int br_nf_local_in(void *priv, | ||
| 532 | struct sk_buff *skb, | ||
| 533 | const struct nf_hook_state *state) | ||
| 534 | { | ||
| 535 | br_drop_fake_rtable(skb); | ||
| 536 | return NF_ACCEPT; | ||
| 537 | } | ||
| 538 | |||
| 539 | /* PF_BRIDGE/FORWARD *************************************************/ | 524 | /* PF_BRIDGE/FORWARD *************************************************/ |
| 540 | static int br_nf_forward_finish(struct net *net, struct sock *sk, struct sk_buff *skb) | 525 | static int br_nf_forward_finish(struct net *net, struct sock *sk, struct sk_buff *skb) |
| 541 | { | 526 | { |
| @@ -908,12 +893,6 @@ static struct nf_hook_ops br_nf_ops[] __read_mostly = { | |||
| 908 | .priority = NF_BR_PRI_BRNF, | 893 | .priority = NF_BR_PRI_BRNF, |
| 909 | }, | 894 | }, |
| 910 | { | 895 | { |
| 911 | .hook = br_nf_local_in, | ||
| 912 | .pf = NFPROTO_BRIDGE, | ||
| 913 | .hooknum = NF_BR_LOCAL_IN, | ||
| 914 | .priority = NF_BR_PRI_BRNF, | ||
| 915 | }, | ||
| 916 | { | ||
| 917 | .hook = br_nf_forward_ip, | 896 | .hook = br_nf_forward_ip, |
| 918 | .pf = NFPROTO_BRIDGE, | 897 | .pf = NFPROTO_BRIDGE, |
| 919 | .hooknum = NF_BR_FORWARD, | 898 | .hooknum = NF_BR_FORWARD, |
