In case the destination address is link local, add override bit into the
switch tag to let such a packet through the switch even if the port is down.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Tristram Ha <tristram...@microchip.com>
Cc: Vivien Didelot <vivien.dide...@savoirfairelinux.com>
Cc: Woojung Huh <woojung....@microchip.com>
Cc: David S. Miller <da...@davemloft.net>
---
V2: New patch
---
 net/dsa/tag_ksz.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/dsa/tag_ksz.c b/net/dsa/tag_ksz.c
index 6305c4d4068dc..b2d407ee63e8e 100644
--- a/net/dsa/tag_ksz.c
+++ b/net/dsa/tag_ksz.c
@@ -108,6 +108,10 @@ static struct sk_buff *ksz9477_xmit(struct sk_buff *skb,
        addr = skb_mac_header(nskb);
 
        *tag = BIT(dp->index);
+
+       if (is_link_local_ether_addr(addr))
+               *tag |= KSZ9477_TAIL_TAG_OVERRIDE;
+
        *tag = cpu_to_be16(*tag);
 
        return nskb;
-- 
2.18.0

Reply via email to