From 823ac590ff1cc39906d0b32e3b907ceeef660eca Mon Sep 17 00:00:00 2001 From: Venkat Chimata Date: Fri, 12 Aug 2022 21:19:43 +0530 Subject: [PATCH] ipq807x: fix proxy_arp sk_buff's cb should be cleared in the entry point for both incoming and outgoing packets at each layer. At bridge, it is already handled in the outgoing path, but not in the incoming path. We have seen cases where proxyarp_replied was 1 on sk_buffs coming from the WLAN driver and they were getting dropped in forwarding path. Fixes: WIFI-10552 Signed-off-by: Venkat Chimata --- ...lear-skbuffs-cb-for-incoming-packets.patch | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 feeds/ipq807x/ipq807x/patches/224-clear-skbuffs-cb-for-incoming-packets.patch diff --git a/feeds/ipq807x/ipq807x/patches/224-clear-skbuffs-cb-for-incoming-packets.patch b/feeds/ipq807x/ipq807x/patches/224-clear-skbuffs-cb-for-incoming-packets.patch new file mode 100644 index 000000000..85e8bc9e9 --- /dev/null +++ b/feeds/ipq807x/ipq807x/patches/224-clear-skbuffs-cb-for-incoming-packets.patch @@ -0,0 +1,30 @@ +From a0d398a7373b395a2cbdc865815560671d1e8a08 Mon Sep 17 00:00:00 2001 +From: Venkat Chimata +Date: Fri, 12 Aug 2022 15:42:40 +0530 +Subject: [PATCH] sk_buff's cb should be cleared in the entry point for both + incoming and outgoing packets at each layer. At bridge, it is already handled + in the outgoing path, but not in the incoming path. We have seen cases where + proxyarp_replied was 1 on sk_buffs coming from the WLAN driver and they were + getting dropped in forwarding path. + +Signed-off-by: Venkat Chimata +--- + net/bridge/br_input.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c +index e6b745b7..09cd5b72 100644 +--- a/net/bridge/br_input.c ++++ b/net/bridge/br_input.c +@@ -282,6 +282,8 @@ rx_handler_result_t br_handle_frame(struct sk_buff **pskb) + if (!skb) + return RX_HANDLER_CONSUMED; + ++ memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); ++ + p = br_port_get_rcu(skb->dev); + + if (unlikely(is_link_local_ether_addr(dest))) { +-- +2.34.1 +