* [PATCH v2] usb: gadget: ether: Allow changing the MTU
@ 2015-11-30 11:18 Mike Looijmans
2015-12-11 10:47 ` Mike Looijmans
0 siblings, 1 reply; 3+ messages in thread
From: Mike Looijmans @ 2015-11-30 11:18 UTC (permalink / raw)
To: linux-usb; +Cc: balbi, gregkh, linux-kernel, Mike Looijmans
The gadget ethernet driver supports changing the MTU, but only allows this
when the USB cable is removed. The comment indicates that this is because
the "peer won't know". Even if the network link is still down and only the
USB link is established, the driver won't allow the change.
Other network interfaces allow changing the MTU any time, and don't force
the link to be disabled. This makes perfect sense, because in order to be
able to negotiate the MTU, the link needs to be up.
Remove the restriction so that it is now actually possible to change the
MTU (e.g. using "ifconfig usb0 mtu 15000") without having to manually pull
the plug or change the driver's default setting.
This is especially important after commit bba787a860fa
("usb: gadget: ether: Allow jumbo frames")
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
---
v2: Fix commit reference (checkpatch) and unused variable 'dev' (kbuild test robot)
drivers/usb/gadget/function/u_ether.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
index 6554322..637809e 100644
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -143,21 +143,11 @@ static inline int qlen(struct usb_gadget *gadget, unsigned qmult)
static int ueth_change_mtu(struct net_device *net, int new_mtu)
{
- struct eth_dev *dev = netdev_priv(net);
- unsigned long flags;
- int status = 0;
+ if (new_mtu <= ETH_HLEN || new_mtu > GETHER_MAX_ETH_FRAME_LEN)
+ return -ERANGE;
+ net->mtu = new_mtu;
- /* don't change MTU on "live" link (peer won't know) */
- spin_lock_irqsave(&dev->lock, flags);
- if (dev->port_usb)
- status = -EBUSY;
- else if (new_mtu <= ETH_HLEN || new_mtu > GETHER_MAX_ETH_FRAME_LEN)
- status = -ERANGE;
- else
- net->mtu = new_mtu;
- spin_unlock_irqrestore(&dev->lock, flags);
-
- return status;
+ return 0;
}
static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p)
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] usb: gadget: ether: Allow changing the MTU
2015-11-30 11:18 [PATCH v2] usb: gadget: ether: Allow changing the MTU Mike Looijmans
@ 2015-12-11 10:47 ` Mike Looijmans
2015-12-16 16:05 ` Felipe Balbi
0 siblings, 1 reply; 3+ messages in thread
From: Mike Looijmans @ 2015-12-11 10:47 UTC (permalink / raw)
To: linux-usb; +Cc: balbi, gregkh, linux-kernel
Just a "ping" reminder, I'd like to inquire about the status of this patch...
On 30-11-15 12:18, Mike Looijmans wrote:
> The gadget ethernet driver supports changing the MTU, but only allows this
> when the USB cable is removed. The comment indicates that this is because
> the "peer won't know". Even if the network link is still down and only the
> USB link is established, the driver won't allow the change.
>
> Other network interfaces allow changing the MTU any time, and don't force
> the link to be disabled. This makes perfect sense, because in order to be
> able to negotiate the MTU, the link needs to be up.
>
> Remove the restriction so that it is now actually possible to change the
> MTU (e.g. using "ifconfig usb0 mtu 15000") without having to manually pull
> the plug or change the driver's default setting.
>
> This is especially important after commit bba787a860fa
> ("usb: gadget: ether: Allow jumbo frames")
>
> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
> ---
> v2: Fix commit reference (checkpatch) and unused variable 'dev' (kbuild test robot)
>
> drivers/usb/gadget/function/u_ether.c | 18 ++++--------------
> 1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
> index 6554322..637809e 100644
> --- a/drivers/usb/gadget/function/u_ether.c
> +++ b/drivers/usb/gadget/function/u_ether.c
> @@ -143,21 +143,11 @@ static inline int qlen(struct usb_gadget *gadget, unsigned qmult)
>
> static int ueth_change_mtu(struct net_device *net, int new_mtu)
> {
> - struct eth_dev *dev = netdev_priv(net);
> - unsigned long flags;
> - int status = 0;
> + if (new_mtu <= ETH_HLEN || new_mtu > GETHER_MAX_ETH_FRAME_LEN)
> + return -ERANGE;
> + net->mtu = new_mtu;
>
> - /* don't change MTU on "live" link (peer won't know) */
> - spin_lock_irqsave(&dev->lock, flags);
> - if (dev->port_usb)
> - status = -EBUSY;
> - else if (new_mtu <= ETH_HLEN || new_mtu > GETHER_MAX_ETH_FRAME_LEN)
> - status = -ERANGE;
> - else
> - net->mtu = new_mtu;
> - spin_unlock_irqrestore(&dev->lock, flags);
> -
> - return status;
> + return 0;
> }
>
> static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p)
>
Kind regards,
Mike Looijmans
System Expert
TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
Telefax: +31 (0) 499 33 69 70
E-mail: mike.looijmans@topicproducts.com
Website: www.topicproducts.com
Please consider the environment before printing this e-mail
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] usb: gadget: ether: Allow changing the MTU
2015-12-11 10:47 ` Mike Looijmans
@ 2015-12-16 16:05 ` Felipe Balbi
0 siblings, 0 replies; 3+ messages in thread
From: Felipe Balbi @ 2015-12-16 16:05 UTC (permalink / raw)
To: Mike Looijmans, linux-usb; +Cc: gregkh, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 179 bytes --]
Hi,
Mike Looijmans <mike.looijmans@topic.nl> writes:
> Just a "ping" reminder, I'd like to inquire about the status of this
> patch...
in my testing/next
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-12-16 16:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-30 11:18 [PATCH v2] usb: gadget: ether: Allow changing the MTU Mike Looijmans
2015-12-11 10:47 ` Mike Looijmans
2015-12-16 16:05 ` Felipe Balbi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox