Module Name: src Committed By: riastradh Date: Thu Mar 3 05:55:52 UTC 2022
Modified Files: src/sys/dev/usb: if_cdce.c if_urndis.c usbnet.c Log Message: usbnet: Handle usbnet_set_link for drivers with no media detect. To generate a diff of this commit: cvs rdiff -u -r1.76 -r1.77 src/sys/dev/usb/if_cdce.c cvs rdiff -u -r1.42 -r1.43 src/sys/dev/usb/if_urndis.c cvs rdiff -u -r1.86 -r1.87 src/sys/dev/usb/usbnet.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/if_cdce.c diff -u src/sys/dev/usb/if_cdce.c:1.76 src/sys/dev/usb/if_cdce.c:1.77 --- src/sys/dev/usb/if_cdce.c:1.76 Thu Mar 3 05:55:29 2022 +++ src/sys/dev/usb/if_cdce.c Thu Mar 3 05:55:52 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cdce.c,v 1.76 2022/03/03 05:55:29 riastradh Exp $ */ +/* $NetBSD: if_cdce.c,v 1.77 2022/03/03 05:55:52 riastradh Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000-2003 Bill Paul <wp...@windriver.com> @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.76 2022/03/03 05:55:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.77 2022/03/03 05:55:52 riastradh Exp $"); #include <sys/param.h> @@ -262,7 +262,6 @@ cdce_uno_init(struct ifnet *ifp) int rv; rv = usbnet_init_rx_tx(un); - usbnet_set_link(un, rv == 0); return rv; } Index: src/sys/dev/usb/if_urndis.c diff -u src/sys/dev/usb/if_urndis.c:1.42 src/sys/dev/usb/if_urndis.c:1.43 --- src/sys/dev/usb/if_urndis.c:1.42 Thu Mar 3 05:55:19 2022 +++ src/sys/dev/usb/if_urndis.c Thu Mar 3 05:55:52 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_urndis.c,v 1.42 2022/03/03 05:55:19 riastradh Exp $ */ +/* $NetBSD: if_urndis.c,v 1.43 2022/03/03 05:55:52 riastradh Exp $ */ /* $OpenBSD: if_urndis.c,v 1.31 2011/07/03 15:47:17 matthew Exp $ */ /* @@ -21,7 +21,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.42 2022/03/03 05:55:19 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.43 2022/03/03 05:55:52 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -878,7 +878,6 @@ urndis_uno_init(struct ifnet *ifp) if (error) return EIO; /* XXX */ error = usbnet_init_rx_tx(un); - usbnet_set_link(un, error == 0); return error; } Index: src/sys/dev/usb/usbnet.c diff -u src/sys/dev/usb/usbnet.c:1.86 src/sys/dev/usb/usbnet.c:1.87 --- src/sys/dev/usb/usbnet.c:1.86 Thu Mar 3 05:55:29 2022 +++ src/sys/dev/usb/usbnet.c Thu Mar 3 05:55:52 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: usbnet.c,v 1.86 2022/03/03 05:55:29 riastradh Exp $ */ +/* $NetBSD: usbnet.c,v 1.87 2022/03/03 05:55:52 riastradh Exp $ */ /* * Copyright (c) 2019 Matthew R. Green @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usbnet.c,v 1.86 2022/03/03 05:55:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usbnet.c,v 1.87 2022/03/03 05:55:52 riastradh Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -904,6 +904,13 @@ out: usbnet_ep_close_pipes(un); } + /* + * For devices without any media autodetection, treat success + * here as an active link. + */ + if (un->un_ops->uno_statchg == NULL) + usbnet_set_link(un, error == 0); + usbnet_isowned_core(un); return error;