Message ID | 20250325095842.1567999-1-lkundrak@v3.sk (mailing list archive) |
---|---|
State | Accepted |
Commit | 67d1a8956d2d62fe6b4c13ebabb57806098511d8 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v3,net-next] rndis_host: Flag RNDIS modems as WWAN devices | expand |
On Tue, Mar 25, 2025 at 10:58:41AM +0100, Lubomir Rintel wrote: > Set FLAG_WWAN instead of FLAG_ETHERNET for RNDIS interfaces on Mobile > Broadband Modems, as opposed to regular Ethernet adapters. > > Otherwise NetworkManager gets confused, misjudges the device type, > and wouldn't know it should connect a modem to get the device to work. > What would be the result depends on ModemManager version -- older > ModemManager would end up disconnecting a device after an unsuccessful > probe attempt (if it connected without needing to unlock a SIM), while > a newer one might spawn a separate PPP connection over a tty interface > instead, resulting in a general confusion and no end of chaos. > > The only way to get this work reliably is to fix the device type > and have good enough version ModemManager (or equivalent). > > Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> > Fixes: 63ba395cd7a5 ("rndis_host: support Novatel Verizon USB730L") > > --- > Changes since v1: > * Added Fixes tag, as suggested by Paolo Abeni > > Changes since v2: > * Fixed Fixes tag... Suggested by Jakub Kicinski > > --- > drivers/net/usb/rndis_host.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c > index 7b3739b29c8f7..bb0bf14158727 100644 > --- a/drivers/net/usb/rndis_host.c > +++ b/drivers/net/usb/rndis_host.c > @@ -630,6 +630,16 @@ static const struct driver_info zte_rndis_info = { > .tx_fixup = rndis_tx_fixup, > }; > > +static const struct driver_info wwan_rndis_info = { > + .description = "Mobile Broadband RNDIS device", > + .flags = FLAG_WWAN | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT, > + .bind = rndis_bind, > + .unbind = rndis_unbind, > + .status = rndis_status, > + .rx_fixup = rndis_rx_fixup, > + .tx_fixup = rndis_tx_fixup, > +}; > + > /*-------------------------------------------------------------------------*/ > > static const struct usb_device_id products [] = { > @@ -666,9 +676,11 @@ static const struct usb_device_id products [] = { > USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3), > .driver_info = (unsigned long) &rndis_info, > }, { > - /* Novatel Verizon USB730L */ > + /* Mobile Broadband Modem, seen in Novatel Verizon USB730L and > + * Telit FN990A (RNDIS) > + */ > USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1), > - .driver_info = (unsigned long) &rndis_info, > + .driver_info = (unsigned long)&wwan_rndis_info, > }, > { }, // END > }; > -- > 2.48.1 > > Hi, This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree. You are receiving this message because of the following common error(s) as indicated below: - You have marked a patch with a "Fixes:" tag for a commit that is in an older released kernel, yet you do not have a cc: stable line in the signed-off-by area at all, which means that the patch will not be applied to any older kernel releases. To properly fix this, please follow the documented rules in the Documentation/process/stable-kernel-rules.rst file for how to resolve this. If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers. thanks, greg k-h's patch email bot
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 25 Mar 2025 10:58:41 +0100 you wrote: > Set FLAG_WWAN instead of FLAG_ETHERNET for RNDIS interfaces on Mobile > Broadband Modems, as opposed to regular Ethernet adapters. > > Otherwise NetworkManager gets confused, misjudges the device type, > and wouldn't know it should connect a modem to get the device to work. > What would be the result depends on ModemManager version -- older > ModemManager would end up disconnecting a device after an unsuccessful > probe attempt (if it connected without needing to unlock a SIM), while > a newer one might spawn a separate PPP connection over a tty interface > instead, resulting in a general confusion and no end of chaos. > > [...] Here is the summary with links: - [v3,net-next] rndis_host: Flag RNDIS modems as WWAN devices https://git.kernel.org/netdev/net/c/67d1a8956d2d You are awesome, thank you!
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c index 7b3739b29c8f7..bb0bf14158727 100644 --- a/drivers/net/usb/rndis_host.c +++ b/drivers/net/usb/rndis_host.c @@ -630,6 +630,16 @@ static const struct driver_info zte_rndis_info = { .tx_fixup = rndis_tx_fixup, }; +static const struct driver_info wwan_rndis_info = { + .description = "Mobile Broadband RNDIS device", + .flags = FLAG_WWAN | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT, + .bind = rndis_bind, + .unbind = rndis_unbind, + .status = rndis_status, + .rx_fixup = rndis_rx_fixup, + .tx_fixup = rndis_tx_fixup, +}; + /*-------------------------------------------------------------------------*/ static const struct usb_device_id products [] = { @@ -666,9 +676,11 @@ static const struct usb_device_id products [] = { USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3), .driver_info = (unsigned long) &rndis_info, }, { - /* Novatel Verizon USB730L */ + /* Mobile Broadband Modem, seen in Novatel Verizon USB730L and + * Telit FN990A (RNDIS) + */ USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1), - .driver_info = (unsigned long) &rndis_info, + .driver_info = (unsigned long)&wwan_rndis_info, }, { }, // END };
Set FLAG_WWAN instead of FLAG_ETHERNET for RNDIS interfaces on Mobile Broadband Modems, as opposed to regular Ethernet adapters. Otherwise NetworkManager gets confused, misjudges the device type, and wouldn't know it should connect a modem to get the device to work. What would be the result depends on ModemManager version -- older ModemManager would end up disconnecting a device after an unsuccessful probe attempt (if it connected without needing to unlock a SIM), while a newer one might spawn a separate PPP connection over a tty interface instead, resulting in a general confusion and no end of chaos. The only way to get this work reliably is to fix the device type and have good enough version ModemManager (or equivalent). Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Fixes: 63ba395cd7a5 ("rndis_host: support Novatel Verizon USB730L") --- Changes since v1: * Added Fixes tag, as suggested by Paolo Abeni Changes since v2: * Fixed Fixes tag... Suggested by Jakub Kicinski --- drivers/net/usb/rndis_host.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)