net: fec: Set max MTU size to allow the MTU to be changed
authorAndrew Lunn <andrew@lunn.ch>
Sat, 11 Jul 2020 20:32:06 +0000 (22:32 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 12 Jul 2020 22:22:14 +0000 (15:22 -0700)
The FEC allocates 2K buffers, but looses some of it due to
alignment. It can however support an MTU bigger than the default. This
is particularly interesting when used in combination with Ethernet
switches supporting DSA, which have extra headers. The DSA core will
try to increase the MTU to support these extra headers. If the max
size defaults to that of standard Ethernet we get a warning. By
setting the max to what the driver actually supports, we avoid this
warning.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index 795693874e31c41261cabcc63ab25278e81f814b..a93381284f086b45cd4cc0e057be21bad91ea8b4 100644 (file)
@@ -3678,6 +3678,8 @@ fec_probe(struct platform_device *pdev)
        fec_enet_clk_enable(ndev, false);
        pinctrl_pm_select_sleep_state(&pdev->dev);
 
+       ndev->max_mtu = PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN;
+
        ret = register_netdev(ndev);
        if (ret)
                goto failed_register;