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 blocked.
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> Reviewed-by: Andrew Lunn <and...@lunn.ch> --- V2: New patch V3: - Replace down with blocked in commit message - Add R-B --- 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 c98b53f691bd..da71b9e2af52 100644 --- a/net/dsa/tag_ksz.c +++ b/net/dsa/tag_ksz.c @@ -110,6 +110,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