netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
@ 2020-02-21 13:17 Daniele Palmas
  2020-02-23 13:40 ` Bjørn Mork
  2020-02-24  0:15 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Daniele Palmas @ 2020-02-21 13:17 UTC (permalink / raw)
  To: Bjørn Mork; +Cc: netdev, David S . Miller, Daniele Palmas

usbnet creates network interfaces with min_mtu = 0 and
max_mtu = ETH_MAX_MTU.

These values are not modified by qmi_wwan when the network interface
is created initially, allowing, for example, to set mtu greater than 1500.

When a raw_ip switch is done (raw_ip set to 'Y', then set to 'N') the mtu
values for the network interface are set through ether_setup, with
min_mtu = ETH_MIN_MTU and max_mtu = ETH_DATA_LEN, not allowing anymore to
set mtu greater than 1500 (error: mtu greater than device maximum).

The patch restores the original min/max mtu values set by usbnet after a
raw_ip switch.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
---
 drivers/net/usb/qmi_wwan.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 3b7a3b8a5e06..5754bb6ca0ee 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -337,6 +337,9 @@ static void qmi_wwan_netdev_setup(struct net_device *net)
 		netdev_dbg(net, "mode: raw IP\n");
 	} else if (!net->header_ops) { /* don't bother if already set */
 		ether_setup(net);
+		/* Restoring min/max mtu values set originally by usbnet */
+		net->min_mtu = 0;
+		net->max_mtu = ETH_MAX_MTU;
 		clear_bit(EVENT_NO_IP_ALIGN, &dev->flags);
 		netdev_dbg(net, "mode: Ethernet\n");
 	}
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
  2020-02-21 13:17 [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch Daniele Palmas
@ 2020-02-23 13:40 ` Bjørn Mork
  2020-02-24  8:38   ` Daniele Palmas
  2020-02-24  0:15 ` David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: Bjørn Mork @ 2020-02-23 13:40 UTC (permalink / raw)
  To: Daniele Palmas; +Cc: netdev, David S . Miller

Daniele Palmas <dnlplm@gmail.com> writes:

> usbnet creates network interfaces with min_mtu = 0 and
> max_mtu = ETH_MAX_MTU.
>
> These values are not modified by qmi_wwan when the network interface
> is created initially, allowing, for example, to set mtu greater than 1500.
>
> When a raw_ip switch is done (raw_ip set to 'Y', then set to 'N') the mtu
> values for the network interface are set through ether_setup, with
> min_mtu = ETH_MIN_MTU and max_mtu = ETH_DATA_LEN, not allowing anymore to
> set mtu greater than 1500 (error: mtu greater than device maximum).
>
> The patch restores the original min/max mtu values set by usbnet after a
> raw_ip switch.
>
> Signed-off-by: Daniele Palmas <dnlplm@gmail.com>

Great! I tried to look up the origin of this bug, and it seems to be a
hard-to-spot fallout from the 'centralized MTU checking'.  Not easy to
see the hidden connection in usbnet.c and eth.c. Thanks for finding and
fixing it!

This should probably go to stable as well?

Acked-by: Bjørn Mork <bjorn@mork.no>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
  2020-02-21 13:17 [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch Daniele Palmas
  2020-02-23 13:40 ` Bjørn Mork
@ 2020-02-24  0:15 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2020-02-24  0:15 UTC (permalink / raw)
  To: dnlplm; +Cc: bjorn, netdev

From: Daniele Palmas <dnlplm@gmail.com>
Date: Fri, 21 Feb 2020 14:17:05 +0100

> usbnet creates network interfaces with min_mtu = 0 and
> max_mtu = ETH_MAX_MTU.
> 
> These values are not modified by qmi_wwan when the network interface
> is created initially, allowing, for example, to set mtu greater than 1500.
> 
> When a raw_ip switch is done (raw_ip set to 'Y', then set to 'N') the mtu
> values for the network interface are set through ether_setup, with
> min_mtu = ETH_MIN_MTU and max_mtu = ETH_DATA_LEN, not allowing anymore to
> set mtu greater than 1500 (error: mtu greater than device maximum).
> 
> The patch restores the original min/max mtu values set by usbnet after a
> raw_ip switch.
> 
> Signed-off-by: Daniele Palmas <dnlplm@gmail.com>

Applied and queued up for -stable.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
  2020-02-23 13:40 ` Bjørn Mork
@ 2020-02-24  8:38   ` Daniele Palmas
  0 siblings, 0 replies; 4+ messages in thread
From: Daniele Palmas @ 2020-02-24  8:38 UTC (permalink / raw)
  To: Bjørn Mork; +Cc: netdev, David S . Miller

Il giorno dom 23 feb 2020 alle ore 14:41 Bjørn Mork <bjorn@mork.no> ha scritto:
>
> Daniele Palmas <dnlplm@gmail.com> writes:
>
> > usbnet creates network interfaces with min_mtu = 0 and
> > max_mtu = ETH_MAX_MTU.
> >
> > These values are not modified by qmi_wwan when the network interface
> > is created initially, allowing, for example, to set mtu greater than 1500.
> >
> > When a raw_ip switch is done (raw_ip set to 'Y', then set to 'N') the mtu
> > values for the network interface are set through ether_setup, with
> > min_mtu = ETH_MIN_MTU and max_mtu = ETH_DATA_LEN, not allowing anymore to
> > set mtu greater than 1500 (error: mtu greater than device maximum).
> >
> > The patch restores the original min/max mtu values set by usbnet after a
> > raw_ip switch.
> >
> > Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
>
> Great! I tried to look up the origin of this bug, and it seems to be a
> hard-to-spot fallout from the 'centralized MTU checking'.  Not easy to
> see the hidden connection in usbnet.c and eth.c. Thanks for finding and
> fixing it!
>
> This should probably go to stable as well?
>

Yes, I think it won't hurt.

Thanks,
Daniele

> Acked-by: Bjørn Mork <bjorn@mork.no>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-02-24  8:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21 13:17 [PATCH 1/1] net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch Daniele Palmas
2020-02-23 13:40 ` Bjørn Mork
2020-02-24  8:38   ` Daniele Palmas
2020-02-24  0:15 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).