--- a/drivers/net/ethernet/lantiq_etop.c +++ b/drivers/net/ethernet/lantiq_etop.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -764,8 +765,10 @@ ltq_etop_change_mtu(struct net_device *d struct ltq_etop_priv *priv = netdev_priv(dev); unsigned long flags; + int max = ETH_HLEN + VLAN_HLEN + new_mtu + ETH_FCS_LEN; + spin_lock_irqsave(&priv->lock, flags); - ltq_etop_w32((ETOP_PLEN_UNDER << 16) | new_mtu, + ltq_etop_w32((ETOP_PLEN_UNDER << 16) | max, LTQ_ETOP_IGPLEN); spin_unlock_irqrestore(&priv->lock, flags); }