net: dsa: Drop WARN() in tag_brcm.c
authorFlorian Fainelli <f.fainelli@gmail.com>
Tue, 24 Jan 2017 03:19:07 +0000 (19:19 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jan 2017 20:00:22 +0000 (15:00 -0500)
We may be able to see invalid Broadcom tags when the hardware and drivers are
misconfigured, or just while exercising the error path. Instead of flooding
the console with messages, flat out drop the packet.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_brcm.c

index af82927674e0072735bd1e3c2e695186b7012b23..cb5a2b7a0118ed82eec5a29807dc52086ff73f8c 100644 (file)
@@ -121,7 +121,8 @@ static int brcm_tag_rcv(struct sk_buff *skb, struct net_device *dev,
        /* We should never see a reserved reason code without knowing how to
         * handle it
         */
-       WARN_ON(brcm_tag[2] & BRCM_EG_RC_RSVD);
+       if (unlikely(brcm_tag[2] & BRCM_EG_RC_RSVD))
+               goto out_drop;
 
        /* Locate which port this is coming from */
        source_port = brcm_tag[3] & BRCM_EG_PID_MASK;