Module Name: src Committed By: mrg Date: Wed Aug 14 03:44:58 UTC 2019
Modified Files: src/sys/dev/usb: if_axe.c if_axen.c if_cdce.c if_smsc.c if_udav.c if_ure.c if_urndis.c usbnet.c usbnet.h src/sys/sys: param.h Log Message: introduce usbnet_set_dying(). will be used by url(4) conversion. bump version. introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg, USBNET_MODULE(axen) To generate a diff of this commit: cvs rdiff -u -r1.113 -r1.114 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.62 -r1.63 src/sys/dev/usb/if_axen.c cvs rdiff -u -r1.64 -r1.65 src/sys/dev/usb/if_cdce.c cvs rdiff -u -r1.56 -r1.57 src/sys/dev/usb/if_smsc.c cvs rdiff -u -r1.66 -r1.67 src/sys/dev/usb/if_udav.c cvs rdiff -u -r1.25 -r1.26 src/sys/dev/usb/if_ure.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/usb/if_urndis.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/usb/usbnet.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/usb/usbnet.h cvs rdiff -u -r1.606 -r1.607 src/sys/sys/param.h 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_axe.c diff -u src/sys/dev/usb/if_axe.c:1.113 src/sys/dev/usb/if_axe.c:1.114 --- src/sys/dev/usb/if_axe.c:1.113 Sun Aug 11 23:55:43 2019 +++ src/sys/dev/usb/if_axe.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_axe.c,v 1.113 2019/08/11 23:55:43 mrg Exp $ */ +/* $NetBSD: if_axe.c,v 1.114 2019/08/14 03:44:58 mrg Exp $ */ /* $OpenBSD: if_axe.c,v 1.137 2016/04/13 11:03:37 mpi Exp $ */ /* @@ -87,7 +87,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.113 2019/08/11 23:55:43 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.114 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -95,11 +95,6 @@ __KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1 #endif #include <sys/param.h> -#include <sys/kernel.h> -#include <sys/module.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/systm.h> #include <dev/usb/usbnet.h> #include <dev/usb/usbhist.h> @@ -1391,31 +1386,8 @@ axe_stop(struct ifnet *ifp, int disable) usbnet_unlock_mii_un_locked(un); } -MODULE(MODULE_CLASS_DRIVER, if_axe, "usbnet"); - #ifdef _MODULE #include "ioconf.c" #endif -static int -if_axe_modcmd(modcmd_t cmd, void *aux) -{ - int error = 0; - - switch (cmd) { - case MODULE_CMD_INIT: -#ifdef _MODULE - error = config_init_component(cfdriver_ioconf_axe, - cfattach_ioconf_axe, cfdata_ioconf_axe); -#endif - return error; - case MODULE_CMD_FINI: -#ifdef _MODULE - error = config_fini_component(cfdriver_ioconf_axe, - cfattach_ioconf_axe, cfdata_ioconf_axe); -#endif - return error; - default: - return ENOTTY; - } -} +USBNET_MODULE(axe) Index: src/sys/dev/usb/if_axen.c diff -u src/sys/dev/usb/if_axen.c:1.62 src/sys/dev/usb/if_axen.c:1.63 --- src/sys/dev/usb/if_axen.c:1.62 Sun Aug 11 08:57:36 2019 +++ src/sys/dev/usb/if_axen.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_axen.c,v 1.62 2019/08/11 08:57:36 skrll Exp $ */ +/* $NetBSD: if_axen.c,v 1.63 2019/08/14 03:44:58 mrg Exp $ */ /* $OpenBSD: if_axen.c,v 1.3 2013/10/21 10:10:22 yuo Exp $ */ /* @@ -23,14 +23,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.62 2019/08/11 08:57:36 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.63 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" #endif #include <sys/param.h> -#include <sys/module.h> #include <netinet/in.h> /* XXX for netinet/ip.h */ #include <netinet/ip.h> /* XXX for IP_MAXPACKET */ @@ -969,31 +968,8 @@ axen_stop_cb(struct ifnet *ifp, int disa usbnet_unlock_mii_un_locked(un); } -MODULE(MODULE_CLASS_DRIVER, if_axen, "usbnet"); - #ifdef _MODULE #include "ioconf.c" #endif -static int -if_axen_modcmd(modcmd_t cmd, void *aux) -{ - int error = 0; - - switch (cmd) { - case MODULE_CMD_INIT: -#ifdef _MODULE - error = config_init_component(cfdriver_ioconf_axen, - cfattach_ioconf_axen, cfdata_ioconf_axen); -#endif - return error; - case MODULE_CMD_FINI: -#ifdef _MODULE - error = config_fini_component(cfdriver_ioconf_axen, - cfattach_ioconf_axen, cfdata_ioconf_axen); -#endif - return error; - default: - return ENOTTY; - } -} +USBNET_MODULE(axen) Index: src/sys/dev/usb/if_cdce.c diff -u src/sys/dev/usb/if_cdce.c:1.64 src/sys/dev/usb/if_cdce.c:1.65 --- src/sys/dev/usb/if_cdce.c:1.64 Mon Aug 12 08:52:39 2019 +++ src/sys/dev/usb/if_cdce.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cdce.c,v 1.64 2019/08/12 08:52:39 skrll Exp $ */ +/* $NetBSD: if_cdce.c,v 1.65 2019/08/14 03:44:58 mrg Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000-2003 Bill Paul <wp...@windriver.com> @@ -40,10 +40,9 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.64 2019/08/12 08:52:39 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cdce.c,v 1.65 2019/08/14 03:44:58 mrg Exp $"); #include <sys/param.h> -#include <sys/kernel.h> #include <dev/usb/usbnet.h> #include <dev/usb/usbcdc.h> @@ -202,7 +201,7 @@ cdce_attach(device_t parent, device_t se } /* Find endpoints. */ id = usbd_get_interface_descriptor(un->un_iface); - un->un_ed[USBNET_ENDPT_RX] = un->un_ed[USBNET_ENDPT_TX] = -1; + un->un_ed[USBNET_ENDPT_RX] = un->un_ed[USBNET_ENDPT_TX] = 0; for (i = 0; i < id->bNumEndpoints; i++) { ed = usbd_interface2endpoint_descriptor(un->un_iface, i); if (!ed) { @@ -225,15 +224,15 @@ cdce_attach(device_t parent, device_t se } } /* If we found something, try and use it... */ - if (un->un_ed[USBNET_ENDPT_RX] != -1 && un->un_ed[USBNET_ENDPT_TX] != -1) + if (un->un_ed[USBNET_ENDPT_RX] != 0 && un->un_ed[USBNET_ENDPT_TX] != 0) break; } - if (un->un_ed[USBNET_ENDPT_RX] == -1) { + if (un->un_ed[USBNET_ENDPT_RX] == 0) { aprint_error_dev(self, "could not find data bulk in\n"); return; } - if (un->un_ed[USBNET_ENDPT_TX] == -1 ) { + if (un->un_ed[USBNET_ENDPT_TX] == 0) { aprint_error_dev(self, "could not find data bulk out\n"); return; } @@ -305,7 +304,7 @@ cdce_tx_prepare(struct usbnet *un, struc if (un->un_flags & CDCE_ZAURUS) extra = sizeof(crc); - if (m->m_pkthdr.len > un->un_tx_bufsz - extra) + if ((unsigned)m->m_pkthdr.len > un->un_tx_bufsz - extra) return 0; length = m->m_pkthdr.len + extra; @@ -317,3 +316,9 @@ cdce_tx_prepare(struct usbnet *un, struc return length; } + +#ifdef _MODULE +#include "ioconf.c" +#endif + +USBNET_MODULE(cdce) Index: src/sys/dev/usb/if_smsc.c diff -u src/sys/dev/usb/if_smsc.c:1.56 src/sys/dev/usb/if_smsc.c:1.57 --- src/sys/dev/usb/if_smsc.c:1.56 Sun Aug 11 23:55:43 2019 +++ src/sys/dev/usb/if_smsc.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_smsc.c,v 1.56 2019/08/11 23:55:43 mrg Exp $ */ +/* $NetBSD: if_smsc.c,v 1.57 2019/08/14 03:44:58 mrg Exp $ */ /* $OpenBSD: if_smsc.c,v 1.4 2012/09/27 12:38:11 jsg Exp $ */ /* $FreeBSD: src/sys/dev/usb/net/if_smsc.c,v 1.1 2012/08/15 04:03:55 gonzo Exp $ */ @@ -61,14 +61,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_smsc.c,v 1.56 2019/08/11 23:55:43 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_smsc.c,v 1.57 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" #endif #include <sys/param.h> -#include <sys/module.h> #include <dev/usb/usbnet.h> #include <dev/usb/usbhist.h> @@ -1107,31 +1106,8 @@ smsc_tx_prepare(struct usbnet *un, struc return frm_len; } -MODULE(MODULE_CLASS_DRIVER, if_smsc, "usbnet"); - #ifdef _MODULE #include "ioconf.c" #endif -static int -if_smsc_modcmd(modcmd_t cmd, void *aux) -{ - int error = 0; - - switch (cmd) { - case MODULE_CMD_INIT: -#ifdef _MODULE - error = config_init_component(cfdriver_ioconf_smsc, - cfattach_ioconf_smsc, cfdata_ioconf_smsc); -#endif - return error; - case MODULE_CMD_FINI: -#ifdef _MODULE - error = config_fini_component(cfdriver_ioconf_smsc, - cfattach_ioconf_smsc, cfdata_ioconf_smsc); -#endif - return error; - default: - return ENOTTY; - } -} +USBNET_MODULE(smsc) Index: src/sys/dev/usb/if_udav.c diff -u src/sys/dev/usb/if_udav.c:1.66 src/sys/dev/usb/if_udav.c:1.67 --- src/sys/dev/usb/if_udav.c:1.66 Sun Aug 11 08:56:53 2019 +++ src/sys/dev/usb/if_udav.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_udav.c,v 1.66 2019/08/11 08:56:53 skrll Exp $ */ +/* $NetBSD: if_udav.c,v 1.67 2019/08/14 03:44:58 mrg Exp $ */ /* $nabe: if_udav.c,v 1.3 2003/08/21 16:57:19 nabe Exp $ */ /* @@ -45,16 +45,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.66 2019/08/11 08:56:53 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.67 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" #endif #include <sys/param.h> -#include <sys/systm.h> -#include <sys/module.h> -#include <sys/kernel.h> #include <dev/usb/usbnet.h> #include <dev/usb/if_udavreg.h> @@ -468,19 +465,21 @@ udav_csr_write1(struct usbnet *un, int o } static int -udav_init_locked(struct ifnet *ifp) +udav_init(struct ifnet *ifp) { struct usbnet * const un = ifp->if_softc; struct mii_data * const mii = usbnet_mii(un); uint8_t eaddr[ETHER_ADDR_LEN]; - int rc; + int rc = 0; DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__)); - usbnet_isowned(un); + usbnet_lock(un); - if (usbnet_isdying(un)) + if (usbnet_isdying(un)) { + usbnet_unlock(un); return EIO; + } /* Cancel pending I/O and free all TX/RX buffers */ if (ifp->if_flags & IFF_RUNNING) @@ -515,29 +514,22 @@ udav_init_locked(struct ifnet *ifp) UDAV_CLRBIT(un, UDAV_GPR, UDAV_GPR_GEPIO0); usbnet_unlock_mii_un_locked(un); + usbnet_unlock(un); - rc = 0; - if (mii) { - if ((rc = mii_mediachg(mii)) == ENXIO) - rc = 0; - } + if (mii && (rc = mii_mediachg(mii)) == ENXIO) + rc = 0; if (rc != 0) return rc; - return usbnet_init_rx_tx(un); -} - -static int -udav_init(struct ifnet *ifp) -{ - struct usbnet * const un = ifp->if_softc; - usbnet_lock(un); - int ret = udav_init_locked(ifp); + if (usbnet_isdying(un)) + rc = EIO; + else + rc = usbnet_init_rx_tx(un); usbnet_unlock(un); - return ret; + return rc; } static void @@ -880,31 +872,8 @@ udav_mii_statchg(struct ifnet *ifp) } } -MODULE(MODULE_CLASS_DRIVER, if_udav, "usbnet"); - #ifdef _MODULE #include "ioconf.c" #endif -static int -if_udav_modcmd(modcmd_t cmd, void *aux) -{ - int error = 0; - - switch (cmd) { - case MODULE_CMD_INIT: -#ifdef _MODULE - error = config_init_component(cfdriver_ioconf_udav, - cfattach_ioconf_udav, cfdata_ioconf_udav); -#endif - return error; - case MODULE_CMD_FINI: -#ifdef _MODULE - error = config_fini_component(cfdriver_ioconf_udav, - cfattach_ioconf_udav, cfdata_ioconf_udav); -#endif - return error; - default: - return ENOTTY; - } -} +USBNET_MODULE(udav) Index: src/sys/dev/usb/if_ure.c diff -u src/sys/dev/usb/if_ure.c:1.25 src/sys/dev/usb/if_ure.c:1.26 --- src/sys/dev/usb/if_ure.c:1.25 Sun Aug 11 23:55:43 2019 +++ src/sys/dev/usb/if_ure.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ure.c,v 1.25 2019/08/11 23:55:43 mrg Exp $ */ +/* $NetBSD: if_ure.c,v 1.26 2019/08/14 03:44:58 mrg Exp $ */ /* $OpenBSD: if_ure.c,v 1.10 2018/11/02 21:32:30 jcs Exp $ */ /*- @@ -30,7 +30,7 @@ /* RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ure.c,v 1.25 2019/08/11 23:55:43 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ure.c,v 1.26 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -38,8 +38,6 @@ __KERNEL_RCSID(0, "$NetBSD: if_ure.c,v 1 #endif #include <sys/param.h> -#include <sys/systm.h> -#include <sys/kernel.h> #include <net/route.h> @@ -1152,4 +1150,8 @@ ure_txcsum(struct mbuf *m) return reg; } -/* XXX module is built but no MODULE() or modcmd */ +#ifdef _MODULE +#include "ioconf.c" +#endif + +USBNET_MODULE(ure) Index: src/sys/dev/usb/if_urndis.c diff -u src/sys/dev/usb/if_urndis.c:1.29 src/sys/dev/usb/if_urndis.c:1.30 --- src/sys/dev/usb/if_urndis.c:1.29 Sun Aug 11 23:55:43 2019 +++ src/sys/dev/usb/if_urndis.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_urndis.c,v 1.29 2019/08/11 23:55:43 mrg Exp $ */ +/* $NetBSD: if_urndis.c,v 1.30 2019/08/14 03:44:58 mrg Exp $ */ /* $OpenBSD: if_urndis.c,v 1.31 2011/07/03 15:47:17 matthew Exp $ */ /* @@ -21,16 +21,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.29 2019/08/11 23:55:43 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_urndis.c,v 1.30 2019/08/14 03:44:58 mrg Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" #endif #include <sys/param.h> -#include <sys/systm.h> #include <sys/kmem.h> -#include <sys/kernel.h> #include <dev/usb/usbnet.h> #include <dev/usb/usbdevs.h> @@ -722,7 +720,7 @@ urndis_tx_prepare(struct usbnet *un, str usbnet_isowned_tx(un); - if (m->m_pkthdr.len > un->un_tx_bufsz - sizeof(*msg)) + if ((unsigned)m->m_pkthdr.len > un->un_tx_bufsz - sizeof(*msg)) return 0; msg = (struct rndis_packet_msg *)c->unc_buf; @@ -1100,3 +1098,9 @@ urndis_attach(device_t parent, device_t usbnet_attach_ifp(un, false, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, 0, 0); } + +#ifdef _MODULE +#include "ioconf.c" +#endif + +USBNET_MODULE(urndis) Index: src/sys/dev/usb/usbnet.c diff -u src/sys/dev/usb/usbnet.c:1.13 src/sys/dev/usb/usbnet.c:1.14 --- src/sys/dev/usb/usbnet.c:1.13 Sun Aug 11 23:55:43 2019 +++ src/sys/dev/usb/usbnet.c Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: usbnet.c,v 1.13 2019/08/11 23:55:43 mrg Exp $ */ +/* $NetBSD: usbnet.c,v 1.14 2019/08/14 03:44:58 mrg Exp $ */ /* * Copyright (c) 2019 Matthew R. Green @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usbnet.c,v 1.13 2019/08/11 23:55:43 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usbnet.c,v 1.14 2019/08/14 03:44:58 mrg Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1137,6 +1137,12 @@ usbnet_set_link(struct usbnet *un, bool un->un_pri->unp_link = link; } +void +usbnet_set_dying(struct usbnet *un, bool link) +{ + un->un_pri->unp_dying = link; +} + struct ifnet * usbnet_ifp(struct usbnet *un) { Index: src/sys/dev/usb/usbnet.h diff -u src/sys/dev/usb/usbnet.h:1.10 src/sys/dev/usb/usbnet.h:1.11 --- src/sys/dev/usb/usbnet.h:1.10 Sun Aug 11 01:29:45 2019 +++ src/sys/dev/usb/usbnet.h Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: usbnet.h,v 1.10 2019/08/11 01:29:45 mrg Exp $ */ +/* $NetBSD: usbnet.h,v 1.11 2019/08/14 03:44:58 mrg Exp $ */ /* * Copyright (c) 2019 Matthew R. Green @@ -82,6 +82,7 @@ #include <sys/mbuf.h> #include <sys/rndsource.h> #include <sys/mutex.h> +#include <sys/module.h> #include <net/bpf.h> #include <net/if.h> @@ -232,6 +233,7 @@ struct usbnet { /* Various accessors. */ void usbnet_set_link(struct usbnet *, bool); +void usbnet_set_dying(struct usbnet *, bool); struct ifnet *usbnet_ifp(struct usbnet *); struct ethercom *usbnet_ec(struct usbnet *); @@ -320,4 +322,39 @@ int usbnet_activate(device_t, devact_t); /* stop backend */ void usbnet_stop(struct usbnet *, struct ifnet *, int); +/* module hook up */ + +#ifdef _MODULE +#define USENET_INIT(name) \ + error = config_init_component(cfdriver_ioconf_##name, \ + cfattach_ioconf_##name, cfdata_ioconf_##name); +#define USENET_FINI(name) \ + error = config_fini_component(cfdriver_ioconf_##name, \ + cfattach_ioconf_##name, cfdata_ioconf_##name); +#else +#define USENET_INIT(name) +#define USENET_FINI(name) +#endif + +#define USBNET_MODULE(name) \ + \ +MODULE(MODULE_CLASS_DRIVER, if_##name, "usbnet"); \ + \ +static int \ +if_##name##_modcmd(modcmd_t cmd, void *aux) \ +{ \ + int error = 0; \ + \ + switch (cmd) { \ + case MODULE_CMD_INIT: \ + USENET_INIT(name) \ + return error; \ + case MODULE_CMD_FINI: \ + USENET_FINI(name) \ + return error; \ + default: \ + return ENOTTY; \ + } \ +} + #endif /* _DEV_USB_USBNET_H */ Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.606 src/sys/sys/param.h:1.607 --- src/sys/sys/param.h:1.606 Sat Aug 10 21:13:54 2019 +++ src/sys/sys/param.h Wed Aug 14 03:44:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.606 2019/08/10 21:13:54 rmind Exp $ */ +/* $NetBSD: param.h,v 1.607 2019/08/14 03:44:58 mrg Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -67,7 +67,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 999000700 /* NetBSD 9.99.7 */ +#define __NetBSD_Version__ 999000800 /* NetBSD 9.99.8 */ #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \ (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)