X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=target%2Flinux%2Fgeneric%2Fpatches-3.9%2F644-bridge_optimize_netfilter_hooks.patch;h=64a980ebdddfe4223f2adc99690990ecd0880b98;hb=8fdd3c16f8814e6b0172583b06c66e8d58009680;hp=45114c8ef4549d6e6dea53d71b59b3d40c1fa80b;hpb=d46ec9c935a5e8baa82a889e50f7ff47e1ca5551;p=openwrt.git diff --git a/target/linux/generic/patches-3.9/644-bridge_optimize_netfilter_hooks.patch b/target/linux/generic/patches-3.9/644-bridge_optimize_netfilter_hooks.patch index 45114c8ef4..64a980ebdd 100644 --- a/target/linux/generic/patches-3.9/644-bridge_optimize_netfilter_hooks.patch +++ b/target/linux/generic/patches-3.9/644-bridge_optimize_netfilter_hooks.patch @@ -38,7 +38,7 @@ netif_receive_skb); } -@@ -205,7 +205,7 @@ rx_handler_result_t br_handle_frame(stru +@@ -209,7 +209,7 @@ rx_handler_result_t br_handle_frame(stru } /* Deliver packet to local host only */ @@ -47,7 +47,16 @@ NULL, br_handle_local_finish)) { return RX_HANDLER_CONSUMED; /* consumed by filter */ } else { -@@ -230,7 +230,7 @@ forward: +@@ -224,7 +224,7 @@ forward: + if (ether_addr_equal(p->br->dev->dev_addr, dest)) + skb->pkt_type = PACKET_HOST; + +- if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL, ++ if (BR_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL, + br_handle_local_finish)) + break; + +@@ -246,7 +246,7 @@ forward: if (ether_addr_equal(p->br->dev->dev_addr, dest)) skb->pkt_type = PACKET_HOST; @@ -87,7 +96,7 @@ if (vlan_tx_tag_present(skb)) --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h -@@ -698,15 +698,29 @@ static inline u16 br_get_pvid(const stru +@@ -699,15 +699,29 @@ static inline u16 br_get_pvid(const stru /* br_netfilter.c */ #ifdef CONFIG_BRIDGE_NETFILTER