On Thu, May 28, 2015 at 3:24 PM, Florian Fainelli <f.faine...@gmail.com> wrote: > Occasionnaly we may get oversized packets from the hardware which exceed > the nomimal 2KiB buffer size we allocate SKBs with. Add an early check > which drops the packet to avoid invoking skb_over_panic() and move on to > processing the next packet. > > Signed-off-by: Florian Fainelli <f.faine...@gmail.com>
Reviewed-by: Petri Gynther <pgynt...@google.com> > --- > drivers/net/ethernet/broadcom/bcmsysport.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c > b/drivers/net/ethernet/broadcom/bcmsysport.c > index d777b0db9e63..909ad7a0d480 100644 > --- a/drivers/net/ethernet/broadcom/bcmsysport.c > +++ b/drivers/net/ethernet/broadcom/bcmsysport.c > @@ -638,6 +638,14 @@ static unsigned int bcm_sysport_desc_rx(struct > bcm_sysport_priv *priv, > p_index, priv->rx_c_index, priv->rx_read_ptr, > len, status); > > + if (unlikely(len > RX_BUF_LENGTH)) { > + netif_err(priv, rx_status, ndev, "oversized > packet\n"); > + ndev->stats.rx_length_errors++; > + ndev->stats.rx_errors++; > + dev_kfree_skb_any(skb); > + goto next; > + } > + > if (unlikely(!(status & DESC_EOP) || !(status & DESC_SOP))) { > netif_err(priv, rx_status, ndev, "fragmented > packet!\n"); > ndev->stats.rx_dropped++; > -- > 2.1.0 > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html