From 1c4532011cb659e3112ab025c8158da75c8b91bf Mon Sep 17 00:00:00 2001 From: Zhu Ken Date: Tue, 28 Sep 2021 11:51:36 +0530 Subject: [PATCH] bridge: fix eapol packet dropping issue wpa_supplicant would receive EAPOL packet to start 802.1x session even if its wireless STA interface enslaved in a bridge is disabled. Change-Id: I4e3f786049a19c5bc7aacdc0528b0099744e8674 Signed-off-by: Zhu Ken Signed-off-by: Pooventhiran G --- net/bridge/br_input.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 437b427f7e4b..c30d4837d66d 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -344,15 +344,17 @@ rx_handler_result_t br_handle_frame(struct sk_buff **pskb) forward: switch (p->state) { case BR_STATE_DISABLED: - if (ether_addr_equal(p->br->dev->dev_addr, dest)) - skb->pkt_type = PACKET_HOST; + if (skb->protocol == htons(ETH_P_PAE)) { + if (ether_addr_equal(p->br->dev->dev_addr, dest)) + skb->pkt_type = PACKET_HOST; - if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, - dev_net(skb->dev), NULL, skb, skb->dev, NULL, - br_handle_local_finish) == 1) { - return RX_HANDLER_PASS; + if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, + dev_net(skb->dev), NULL, skb, skb->dev, NULL, + br_handle_local_finish) == 1) { + return RX_HANDLER_PASS; + } } - break; + goto drop; case BR_STATE_FORWARDING: case BR_STATE_LEARNING: