* [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses [not found] <cover.1748010457.git.iecedge@gmail.com> @ 2025-05-23 14:30 ` Jianlin Lv 2025-05-27 15:08 ` Greg KH 0 siblings, 1 reply; 5+ messages in thread From: Jianlin Lv @ 2025-05-23 14:30 UTC (permalink / raw) To: kernel-team Cc: iecedge, jianlv, Dominique Martinet, stable, Ahmed Naseef, Oliver Neukum, Jakub Kicinski From: Dominique Martinet <dominique.martinet@atmark-techno.com> BugLink: https://bugs.launchpad.net/bugs/2111592 commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed that local addresses always came from the kernel, but some devices hand out local mac addresses so we ended up with point-to-point devices with a mac set by the driver, renaming to eth%d when they used to be named usb%d. Userspace should not rely on device name, but for the sake of stability restore the local mac address check portion of the naming exception: point to point devices which either have no mac set by the driver or have a local mac handed out by the driver will keep the usb%d name. (some USB LTE modems are known to hand out a stable mac from the locally administered range; that mac appears to be random (different for mulitple devices) and can be reset with device-specific commands, so while such devices would benefit from getting a OUI reserved, we have to deal with these and might as well preserve the existing behavior to avoid breaking fragile openwrt configurations and such on upgrade.) Link: https://lkml.kernel.org/r/20241203130457.904325-1-asmadeus@codewreck.org Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression") Cc: stable@vger.kernel.org Tested-by: Ahmed Naseef <naseefkm@gmail.com> Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> Acked-by: Oliver Neukum <oneukum@suse.com> Link: https://patch.msgid.link/20250326-usbnet_rename-v2-1-57eb21fcff26@atmark-techno.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 2ea396448f26d0d7d66224cb56500a6789c7ed07) Signed-off-by: Jianlin Lv <iecedge@gmail.com> --- drivers/net/usb/usbnet.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 9f66c47dc58b..08cbc8e4b361 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -178,6 +178,17 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) } EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); +static bool usbnet_needs_usb_name_format(struct usbnet *dev, struct net_device *net) +{ + /* Point to point devices which don't have a real MAC address + * (or report a fake local one) have historically used the usb%d + * naming. Preserve this.. + */ + return (dev->driver_info->flags & FLAG_POINTTOPOINT) != 0 && + (is_zero_ether_addr(net->dev_addr) || + is_local_ether_addr(net->dev_addr)); +} + static void intr_complete (struct urb *urb) { struct usbnet *dev = urb->context; @@ -1766,13 +1777,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) if (status < 0) goto out1; - // heuristic: "usb%d" for links we know are two-host, - // else "eth%d" when there's reasonable doubt. userspace - // can rename the link if it knows better. + /* heuristic: rename to "eth%d" if we are not sure this link + * is two-host (these links keep "usb%d") + */ if ((dev->driver_info->flags & FLAG_ETHER) != 0 && - ((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 || - /* somebody touched it*/ - !is_zero_ether_addr(net->dev_addr))) + !usbnet_needs_usb_name_format(dev, net)) strscpy(net->name, "eth%d", sizeof(net->name)); /* WLAN devices should always be named "wlan%d" */ if ((dev->driver_info->flags & FLAG_WLAN) != 0) -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses 2025-05-23 14:30 ` [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses Jianlin Lv @ 2025-05-27 15:08 ` Greg KH 0 siblings, 0 replies; 5+ messages in thread From: Greg KH @ 2025-05-27 15:08 UTC (permalink / raw) To: Jianlin Lv Cc: kernel-team, jianlv, Dominique Martinet, stable, Ahmed Naseef, Oliver Neukum, Jakub Kicinski On Fri, May 23, 2025 at 10:30:58PM +0800, Jianlin Lv wrote: > From: Dominique Martinet <dominique.martinet@atmark-techno.com> > > BugLink: https://bugs.launchpad.net/bugs/2111592 > > commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed > that local addresses always came from the kernel, but some devices hand > out local mac addresses so we ended up with point-to-point devices with > a mac set by the driver, renaming to eth%d when they used to be named > usb%d. > > Userspace should not rely on device name, but for the sake of stability > restore the local mac address check portion of the naming exception: > point to point devices which either have no mac set by the driver or > have a local mac handed out by the driver will keep the usb%d name. > > (some USB LTE modems are known to hand out a stable mac from the locally > administered range; that mac appears to be random (different for > mulitple devices) and can be reset with device-specific commands, so > while such devices would benefit from getting a OUI reserved, we have > to deal with these and might as well preserve the existing behavior > to avoid breaking fragile openwrt configurations and such on upgrade.) > > Link: https://lkml.kernel.org/r/20241203130457.904325-1-asmadeus@codewreck.org > Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression") > Cc: stable@vger.kernel.org > Tested-by: Ahmed Naseef <naseefkm@gmail.com> > Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> > Acked-by: Oliver Neukum <oneukum@suse.com> > Link: https://patch.msgid.link/20250326-usbnet_rename-v2-1-57eb21fcff26@atmark-techno.com > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > > (cherry picked from commit 2ea396448f26d0d7d66224cb56500a6789c7ed07) > Signed-off-by: Jianlin Lv <iecedge@gmail.com> > --- > drivers/net/usb/usbnet.c | 21 +++++++++++++++------ > 1 file changed, 15 insertions(+), 6 deletions(-) This is already in all stable kernel branches, why send it again? confused, greg k-h ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <cover.1747992812.git.iecedge@gmail.com>]
* [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses [not found] <cover.1747992812.git.iecedge@gmail.com> @ 2025-05-23 9:37 ` Jianlin Lv 2025-05-23 14:13 ` Jianlin Lv 2025-05-27 14:55 ` Greg KH 0 siblings, 2 replies; 5+ messages in thread From: Jianlin Lv @ 2025-05-23 9:37 UTC (permalink / raw) To: jianlv Cc: Dominique Martinet, stable, Ahmed Naseef, Oliver Neukum, Jakub Kicinski, Jianlin Lv From: Dominique Martinet <dominique.martinet@atmark-techno.com> commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed that local addresses always came from the kernel, but some devices hand out local mac addresses so we ended up with point-to-point devices with a mac set by the driver, renaming to eth%d when they used to be named usb%d. Userspace should not rely on device name, but for the sake of stability restore the local mac address check portion of the naming exception: point to point devices which either have no mac set by the driver or have a local mac handed out by the driver will keep the usb%d name. (some USB LTE modems are known to hand out a stable mac from the locally administered range; that mac appears to be random (different for mulitple devices) and can be reset with device-specific commands, so while such devices would benefit from getting a OUI reserved, we have to deal with these and might as well preserve the existing behavior to avoid breaking fragile openwrt configurations and such on upgrade.) Link: https://lkml.kernel.org/r/20241203130457.904325-1-asmadeus@codewreck.org Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression") Cc: stable@vger.kernel.org Tested-by: Ahmed Naseef <naseefkm@gmail.com> Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> Acked-by: Oliver Neukum <oneukum@suse.com> Link: https://patch.msgid.link/20250326-usbnet_rename-v2-1-57eb21fcff26@atmark-techno.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 2ea396448f26d0d7d66224cb56500a6789c7ed07) Signed-off-by: Jianlin Lv <iecedge@gmail.com> --- drivers/net/usb/usbnet.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 9f66c47dc58b..08cbc8e4b361 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -178,6 +178,17 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) } EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); +static bool usbnet_needs_usb_name_format(struct usbnet *dev, struct net_device *net) +{ + /* Point to point devices which don't have a real MAC address + * (or report a fake local one) have historically used the usb%d + * naming. Preserve this.. + */ + return (dev->driver_info->flags & FLAG_POINTTOPOINT) != 0 && + (is_zero_ether_addr(net->dev_addr) || + is_local_ether_addr(net->dev_addr)); +} + static void intr_complete (struct urb *urb) { struct usbnet *dev = urb->context; @@ -1766,13 +1777,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) if (status < 0) goto out1; - // heuristic: "usb%d" for links we know are two-host, - // else "eth%d" when there's reasonable doubt. userspace - // can rename the link if it knows better. + /* heuristic: rename to "eth%d" if we are not sure this link + * is two-host (these links keep "usb%d") + */ if ((dev->driver_info->flags & FLAG_ETHER) != 0 && - ((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 || - /* somebody touched it*/ - !is_zero_ether_addr(net->dev_addr))) + !usbnet_needs_usb_name_format(dev, net)) strscpy(net->name, "eth%d", sizeof(net->name)); /* WLAN devices should always be named "wlan%d" */ if ((dev->driver_info->flags & FLAG_WLAN) != 0) -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses 2025-05-23 9:37 ` Jianlin Lv @ 2025-05-23 14:13 ` Jianlin Lv 2025-05-27 14:55 ` Greg KH 1 sibling, 0 replies; 5+ messages in thread From: Jianlin Lv @ 2025-05-23 14:13 UTC (permalink / raw) To: kernel-team Cc: iecedge, jianlv, Dominique Martinet, stable, Ahmed Naseef, Oliver Neukum, Jakub Kicinski From: Dominique Martinet <dominique.martinet@atmark-techno.com> commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed that local addresses always came from the kernel, but some devices hand out local mac addresses so we ended up with point-to-point devices with a mac set by the driver, renaming to eth%d when they used to be named usb%d. Userspace should not rely on device name, but for the sake of stability restore the local mac address check portion of the naming exception: point to point devices which either have no mac set by the driver or have a local mac handed out by the driver will keep the usb%d name. (some USB LTE modems are known to hand out a stable mac from the locally administered range; that mac appears to be random (different for mulitple devices) and can be reset with device-specific commands, so while such devices would benefit from getting a OUI reserved, we have to deal with these and might as well preserve the existing behavior to avoid breaking fragile openwrt configurations and such on upgrade.) Link: https://lkml.kernel.org/r/20241203130457.904325-1-asmadeus@codewreck.org Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression") Cc: stable@vger.kernel.org Tested-by: Ahmed Naseef <naseefkm@gmail.com> Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> Acked-by: Oliver Neukum <oneukum@suse.com> Link: https://patch.msgid.link/20250326-usbnet_rename-v2-1-57eb21fcff26@atmark-techno.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 2ea396448f26d0d7d66224cb56500a6789c7ed07) Signed-off-by: Jianlin Lv <iecedge@gmail.com> --- drivers/net/usb/usbnet.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 9f66c47dc58b..08cbc8e4b361 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -178,6 +178,17 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) } EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr); +static bool usbnet_needs_usb_name_format(struct usbnet *dev, struct net_device *net) +{ + /* Point to point devices which don't have a real MAC address + * (or report a fake local one) have historically used the usb%d + * naming. Preserve this.. + */ + return (dev->driver_info->flags & FLAG_POINTTOPOINT) != 0 && + (is_zero_ether_addr(net->dev_addr) || + is_local_ether_addr(net->dev_addr)); +} + static void intr_complete (struct urb *urb) { struct usbnet *dev = urb->context; @@ -1766,13 +1777,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) if (status < 0) goto out1; - // heuristic: "usb%d" for links we know are two-host, - // else "eth%d" when there's reasonable doubt. userspace - // can rename the link if it knows better. + /* heuristic: rename to "eth%d" if we are not sure this link + * is two-host (these links keep "usb%d") + */ if ((dev->driver_info->flags & FLAG_ETHER) != 0 && - ((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 || - /* somebody touched it*/ - !is_zero_ether_addr(net->dev_addr))) + !usbnet_needs_usb_name_format(dev, net)) strscpy(net->name, "eth%d", sizeof(net->name)); /* WLAN devices should always be named "wlan%d" */ if ((dev->driver_info->flags & FLAG_WLAN) != 0) -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses 2025-05-23 9:37 ` Jianlin Lv 2025-05-23 14:13 ` Jianlin Lv @ 2025-05-27 14:55 ` Greg KH 1 sibling, 0 replies; 5+ messages in thread From: Greg KH @ 2025-05-27 14:55 UTC (permalink / raw) To: Jianlin Lv Cc: jianlv, Dominique Martinet, stable, Ahmed Naseef, Oliver Neukum, Jakub Kicinski On Fri, May 23, 2025 at 05:37:23PM +0800, Jianlin Lv wrote: > From: Dominique Martinet <dominique.martinet@atmark-techno.com> > > commit 8a7d12d674ac ("net: usb: usbnet: fix name regression") assumed > that local addresses always came from the kernel, but some devices hand > out local mac addresses so we ended up with point-to-point devices with > a mac set by the driver, renaming to eth%d when they used to be named > usb%d. > > Userspace should not rely on device name, but for the sake of stability > restore the local mac address check portion of the naming exception: > point to point devices which either have no mac set by the driver or > have a local mac handed out by the driver will keep the usb%d name. > > (some USB LTE modems are known to hand out a stable mac from the locally > administered range; that mac appears to be random (different for > mulitple devices) and can be reset with device-specific commands, so > while such devices would benefit from getting a OUI reserved, we have > to deal with these and might as well preserve the existing behavior > to avoid breaking fragile openwrt configurations and such on upgrade.) > > Link: https://lkml.kernel.org/r/20241203130457.904325-1-asmadeus@codewreck.org > Fixes: 8a7d12d674ac ("net: usb: usbnet: fix name regression") > Cc: stable@vger.kernel.org > Tested-by: Ahmed Naseef <naseefkm@gmail.com> > Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> > Acked-by: Oliver Neukum <oneukum@suse.com> > Link: https://patch.msgid.link/20250326-usbnet_rename-v2-1-57eb21fcff26@atmark-techno.com > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > > (cherry picked from commit 2ea396448f26d0d7d66224cb56500a6789c7ed07) > Signed-off-by: Jianlin Lv <iecedge@gmail.com> > --- What stable branch is this backport for? confused, greg k-h ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-05-27 15:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1748010457.git.iecedge@gmail.com>
2025-05-23 14:30 ` [SRU] [Noble] [PATCH 1/1] net: usb: usbnet: restore usb%d name exception for local mac addresses Jianlin Lv
2025-05-27 15:08 ` Greg KH
[not found] <cover.1747992812.git.iecedge@gmail.com>
2025-05-23 9:37 ` Jianlin Lv
2025-05-23 14:13 ` Jianlin Lv
2025-05-27 14:55 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox