aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns3xxx
diff options
context:
space:
mode:
authorMathias Kresin <dev@kresin.me>2018-02-18 22:48:44 +0100
committerKoen Vandeputte <koen.vandeputte@ncentric.com>2018-08-20 13:04:34 +0200
commit50dbaee55c4d535b9add8323eee510826921716b (patch)
tree21cdd1575b332f2dc9f1c4877c544665e2b6173c /target/linux/cns3xxx
parent705262f4d305145136b9d7c6bab486714040c1c0 (diff)
downloadupstream-50dbaee55c4d535b9add8323eee510826921716b.tar.gz
upstream-50dbaee55c4d535b9add8323eee510826921716b.tar.bz2
upstream-50dbaee55c4d535b9add8323eee510826921716b.zip
cns3xxx: fix mtu setting with kernel 4.14
Since kernel 4.10 commit 61e84623ace3 ("net: centralize net_device min/max MTU checking"), the range of mtu is [min_mtu, max_mtu], which is [68, 1500] by default. It's necessary to set a max_mtu if a mtu > 1500 is supported. Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'target/linux/cns3xxx')
-rw-r--r--target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
index 07c9dbc048..4fbc34f354 100644
--- a/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
+++ b/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c
@@ -1112,22 +1112,12 @@ static int eth_set_mac(struct net_device *netdev, void *p)
return 0;
}
-static int cns3xxx_change_mtu(struct net_device *dev, int new_mtu)
-{
- if (new_mtu > MAX_MTU)
- return -EINVAL;
-
- dev->mtu = new_mtu;
- return 0;
-}
-
static const struct net_device_ops cns3xxx_netdev_ops = {
.ndo_open = eth_open,
.ndo_stop = eth_close,
.ndo_start_xmit = eth_xmit,
.ndo_set_rx_mode = eth_rx_mode,
.ndo_do_ioctl = eth_ioctl,
- .ndo_change_mtu = cns3xxx_change_mtu,
.ndo_set_mac_address = eth_set_mac,
.ndo_validate_addr = eth_validate_addr,
};
@@ -1224,6 +1214,7 @@ static int eth_init_one(struct platform_device *pdev)
dev->netdev_ops = &cns3xxx_netdev_ops;
dev->ethtool_ops = &cns3xxx_ethtool_ops;
dev->tx_queue_len = 1000;
+ dev->max_mtu = MAX_MTU;
dev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_FRAGLIST;
switch_port_tab[port->id] = port;