Skip to content

Commit 8b1efc0

Browse files
jarodwilsondavem330
authored andcommitted
net: remove MTU limits on a few ether_setup callers
These few drivers call ether_setup(), but have no ndo_change_mtu, and thus were overlooked for changes to MTU range checking behavior. They previously had no range checks, so for feature-parity, set their min_mtu to 0 and max_mtu to ETH_MAX_MTU (65535), instead of the 68 and 1500 inherited from the ether_setup() changes. Fine-tuning can come after we get back to full feature-parity here. CC: [email protected] Reported-by: Asbjoern Sloth Toennesen <[email protected]> CC: Asbjoern Sloth Toennesen <[email protected]> CC: R Parameswaran <[email protected]> Signed-off-by: Jarod Wilson <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent e8f0a89 commit 8b1efc0

File tree

5 files changed

+11
-2
lines changed

5 files changed

+11
-2
lines changed

net/atm/br2684.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,9 @@ static void br2684_setup_routed(struct net_device *netdev)
649649
netdev->hard_header_len = sizeof(llc_oui_ipv4); /* worst case */
650650
netdev->netdev_ops = &br2684_netdev_ops_routed;
651651
netdev->addr_len = 0;
652-
netdev->mtu = 1500;
652+
netdev->mtu = ETH_DATA_LEN;
653+
netdev->min_mtu = 0;
654+
netdev->max_mtu = ETH_MAX_MTU;
653655
netdev->type = ARPHRD_PPP;
654656
netdev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
655657
netdev->tx_queue_len = 100;

net/bluetooth/bnep/netdev.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ void bnep_net_setup(struct net_device *dev)
221221
dev->addr_len = ETH_ALEN;
222222

223223
ether_setup(dev);
224+
dev->min_mtu = 0;
225+
dev->max_mtu = ETH_MAX_MTU;
224226
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
225227
dev->netdev_ops = &bnep_netdev_ops;
226228

net/dsa/slave.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,6 +1247,8 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
12471247
slave_dev->priv_flags |= IFF_NO_QUEUE;
12481248
slave_dev->netdev_ops = &dsa_slave_netdev_ops;
12491249
slave_dev->switchdev_ops = &dsa_slave_switchdev_ops;
1250+
slave_dev->min_mtu = 0;
1251+
slave_dev->max_mtu = ETH_MAX_MTU;
12501252
SET_NETDEV_DEVTYPE(slave_dev, &dsa_type);
12511253

12521254
netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one,

net/irda/irlan/irlan_eth.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ static void irlan_eth_setup(struct net_device *dev)
6666

6767
dev->netdev_ops = &irlan_eth_netdev_ops;
6868
dev->destructor = free_netdev;
69-
69+
dev->min_mtu = 0;
70+
dev->max_mtu = ETH_MAX_MTU;
7071

7172
/*
7273
* Lets do all queueing in IrTTP instead of this device driver.

net/l2tp/l2tp_eth.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,8 @@ static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 p
259259
session->mtu = dev->mtu - session->hdr_len;
260260
dev->mtu = session->mtu;
261261
dev->needed_headroom += session->hdr_len;
262+
dev->min_mtu = 0;
263+
dev->max_mtu = ETH_MAX_MTU;
262264

263265
priv = netdev_priv(dev);
264266
priv->dev = dev;

0 commit comments

Comments
 (0)