Module Name: src Committed By: riastradh Date: Thu Mar 3 05:54:37 UTC 2022
Modified Files: src/sys/dev/usb: if_aue.c if_axe.c if_axen.c if_cue.c if_mue.c if_smsc.c if_udav.c if_ure.c if_url.c Log Message: usbnet drivers: Omit needless usbnet core lock and assertions. During attach, the caller has exclusive access to the usbnet until usbnet_attach_ifp. At other times, register access is serialized either by the usbnet multicast lock or by IFNET_LOCK. To generate a diff of this commit: cvs rdiff -u -r1.185 -r1.186 src/sys/dev/usb/if_aue.c cvs rdiff -u -r1.144 -r1.145 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.88 -r1.89 src/sys/dev/usb/if_axen.c cvs rdiff -u -r1.101 -r1.102 src/sys/dev/usb/if_cue.c cvs rdiff -u -r1.76 -r1.77 src/sys/dev/usb/if_mue.c cvs rdiff -u -r1.86 -r1.87 src/sys/dev/usb/if_smsc.c cvs rdiff -u -r1.91 -r1.92 src/sys/dev/usb/if_udav.c cvs rdiff -u -r1.51 -r1.52 src/sys/dev/usb/if_ure.c cvs rdiff -u -r1.90 -r1.91 src/sys/dev/usb/if_url.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_aue.c diff -u src/sys/dev/usb/if_aue.c:1.185 src/sys/dev/usb/if_aue.c:1.186 --- src/sys/dev/usb/if_aue.c:1.185 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_aue.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_aue.c,v 1.185 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_aue.c,v 1.186 2022/03/03 05:54:37 riastradh Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -76,7 +76,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_aue.c,v 1.185 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_aue.c,v 1.186 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -432,8 +432,6 @@ aue_read_mac(struct usbnet *un) int off = 0; int word; - usbnet_isowned_core(un); - AUEHIST_FUNC(); AUEHIST_CALLARGS("aue%jd: enter", device_unit(un->un_dev), 0, 0, 0); @@ -851,14 +849,10 @@ aue_attach(device_t parent, device_t sel /* First level attach. */ usbnet_attach(un, "auedet"); - usbnet_lock_core(un); - /* Reset the adapter and get station address from the EEPROM. */ aue_reset(sc); aue_read_mac(un); - usbnet_unlock_core(un); - usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, 0, &unm); } Index: src/sys/dev/usb/if_axe.c diff -u src/sys/dev/usb/if_axe.c:1.144 src/sys/dev/usb/if_axe.c:1.145 --- src/sys/dev/usb/if_axe.c:1.144 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_axe.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_axe.c,v 1.144 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_axe.c,v 1.145 2022/03/03 05:54:37 riastradh 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.144 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.145 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -513,8 +513,6 @@ static void axe_reset(struct usbnet *un) { - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return; @@ -930,10 +928,8 @@ axe_attach(device_t parent, device_t sel usbnet_attach(un, "axedet"); /* We need the PHYID for init dance in some cases */ - usbnet_lock_core(un); if (axe_cmd(sc, AXE_CMD_READ_PHYID, 0, 0, &sc->axe_phyaddrs)) { aprint_error_dev(self, "failed to read phyaddrs\n"); - usbnet_unlock_core(un); return; } @@ -963,13 +959,10 @@ axe_attach(device_t parent, device_t sel } else { if (axe_cmd(sc, AXE_CMD_READ_IPG012, 0, 0, sc->axe_ipgs)) { aprint_error_dev(self, "failed to read ipg\n"); - usbnet_unlock_core(un); return; } } - usbnet_unlock_core(un); - if (!AXE_IS_172(un)) usbnet_ec(un)->ec_capabilities = ETHERCAP_VLAN_MTU; if (un->un_flags & AX772B) { @@ -1218,8 +1211,6 @@ axe_uno_init(struct ifnet *ifp) struct axe_softc * const sc = usbnet_softc(un); int rxmode; - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return EIO; Index: src/sys/dev/usb/if_axen.c diff -u src/sys/dev/usb/if_axen.c:1.88 src/sys/dev/usb/if_axen.c:1.89 --- src/sys/dev/usb/if_axen.c:1.88 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_axen.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_axen.c,v 1.88 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_axen.c,v 1.89 2022/03/03 05:54:37 riastradh Exp $ */ /* $OpenBSD: if_axen.c,v 1.3 2013/10/21 10:10:22 yuo Exp $ */ /* @@ -23,7 +23,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.88 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.89 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -295,7 +295,6 @@ allmulti: static void axen_reset(struct usbnet *un) { - usbnet_isowned_core(un); if (usbnet_isdying(un)) return; /* XXX What to reset? */ @@ -367,8 +366,6 @@ axen_ax88179_init(struct usbnet *un) uint16_t wval; uint8_t val; - usbnet_lock_core(un); - /* XXX: ? */ axen_cmd(un, AXEN_CMD_MAC_READ, 1, AXEN_UNK_05, &val); DPRINTFN(5, ("AXEN_CMD_MAC_READ(0x05): 0x%02x\n", val)); @@ -451,7 +448,6 @@ axen_ax88179_init(struct usbnet *un) default: aprint_error_dev(un->un_dev, "unknown uplink bus:0x%02x\n", val); - usbnet_unlock_core(un); return; } axen_cmd(un, AXEN_CMD_MAC_SET_RXSR, 5, AXEN_RX_BULKIN_QCTRL, &qctrl); @@ -509,8 +505,6 @@ axen_ax88179_init(struct usbnet *un) axen_uno_mii_write_reg(un, un->un_phyno, 0x01, wval | 0x0080); axen_uno_mii_write_reg(un, un->un_phyno, 0x1F, 0x0000); #endif - - usbnet_unlock_core(un); } static void @@ -554,8 +548,6 @@ axen_uno_ioctl(struct ifnet *ifp, u_long { struct usbnet * const un = ifp->if_softc; - usbnet_lock_core(un); - switch (cmd) { case SIOCSIFCAP: axen_setoe_locked(un); @@ -564,8 +556,6 @@ axen_uno_ioctl(struct ifnet *ifp, u_long break; } - usbnet_unlock_core(un); - return 0; } @@ -666,13 +656,10 @@ axen_attach(device_t parent, device_t se DPRINTF(("%s: phyno %d\n", device_xname(self), un->un_phyno)); /* Get station address. */ - usbnet_lock_core(un); if (axen_get_eaddr(un, &un->un_eaddr)) { - usbnet_unlock_core(un); printf("EEPROM checksum error\n"); return; } - usbnet_unlock_core(un); axen_ax88179_init(un); @@ -889,8 +876,6 @@ axen_uno_init(struct ifnet *ifp) uint16_t wval; uint8_t bval; - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return EIO; Index: src/sys/dev/usb/if_cue.c diff -u src/sys/dev/usb/if_cue.c:1.101 src/sys/dev/usb/if_cue.c:1.102 --- src/sys/dev/usb/if_cue.c:1.101 Thu Mar 3 05:53:33 2022 +++ src/sys/dev/usb/if_cue.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cue.c,v 1.101 2022/03/03 05:53:33 riastradh Exp $ */ +/* $NetBSD: if_cue.c,v 1.102 2022/03/03 05:54:37 riastradh Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_cue.c,v 1.101 2022/03/03 05:53:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cue.c,v 1.102 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -545,8 +545,6 @@ cue_uno_tick(struct usbnet *un) { struct ifnet *ifp = usbnet_ifp(un); - usbnet_lock_core(un); - net_stat_ref_t nsr = IF_STAT_GETREF(ifp); if (cue_csr_read_2(un, CUE_RX_FRAMEERR)) if_statinc_ref(nsr, if_ierrors); @@ -558,8 +556,6 @@ cue_uno_tick(struct usbnet *un) if_statadd_ref(nsr, if_collisions, cue_csr_read_2(un, CUE_TX_EXCESSCOLL)); IF_STAT_PUTREF(ifp); - - usbnet_unlock_core(un); } static void Index: src/sys/dev/usb/if_mue.c diff -u src/sys/dev/usb/if_mue.c:1.76 src/sys/dev/usb/if_mue.c:1.77 --- src/sys/dev/usb/if_mue.c:1.76 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_mue.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_mue.c,v 1.76 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_mue.c,v 1.77 2022/03/03 05:54:37 riastradh Exp $ */ /* $OpenBSD: if_mue.c,v 1.3 2018/08/04 16:42:46 jsg Exp $ */ /* @@ -20,7 +20,7 @@ /* Driver for Microchip LAN7500/LAN7800 chipsets. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_mue.c,v 1.76 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_mue.c,v 1.77 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -1261,8 +1261,6 @@ mue_uno_ioctl(struct ifnet *ifp, u_long { struct usbnet * const un = ifp->if_softc; - usbnet_lock_core(un); - switch (cmd) { case SIOCSIFCAP: mue_sethwcsum_locked(un); @@ -1274,8 +1272,6 @@ mue_uno_ioctl(struct ifnet *ifp, u_long break; } - usbnet_unlock_core(un); - return 0; } Index: src/sys/dev/usb/if_smsc.c diff -u src/sys/dev/usb/if_smsc.c:1.86 src/sys/dev/usb/if_smsc.c:1.87 --- src/sys/dev/usb/if_smsc.c:1.86 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_smsc.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_smsc.c,v 1.86 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_smsc.c,v 1.87 2022/03/03 05:54:37 riastradh 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,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_smsc.c,v 1.86 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_smsc.c,v 1.87 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -539,7 +539,6 @@ smsc_reset(struct smsc_softc *sc) { struct usbnet * const un = &sc->smsc_un; - usbnet_isowned_core(un); if (usbnet_isdying(un)) return; @@ -556,8 +555,6 @@ smsc_uno_init(struct ifnet *ifp) struct usbnet * const un = ifp->if_softc; struct smsc_softc * const sc = usbnet_softc(un); - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return EIO; @@ -591,8 +588,6 @@ smsc_chip_init(struct usbnet *un) int burst_cap; int err; - usbnet_isowned_core(un); - /* Enter H/W config mode */ smsc_writereg(un, SMSC_HW_CFG, SMSC_HW_CFG_LRST); @@ -739,8 +734,6 @@ smsc_uno_ioctl(struct ifnet *ifp, u_long { struct usbnet * const un = ifp->if_softc; - usbnet_lock_core(un); - switch (cmd) { case SIOCSIFCAP: smsc_setoe_locked(un); @@ -749,8 +742,6 @@ smsc_uno_ioctl(struct ifnet *ifp, u_long break; } - usbnet_unlock_core(un); - return 0; } @@ -859,7 +850,6 @@ smsc_attach(device_t parent, device_t se /* Setup some of the basics */ un->un_phyno = 1; - usbnet_lock_core(un); /* * Attempt to get the mac address, if an EEPROM is not attached this * will just return FF:FF:FF:FF:FF:FF, so in such cases we invent a MAC @@ -887,7 +877,6 @@ smsc_attach(device_t parent, device_t se un->un_eaddr[0] = (uint8_t)((mac_l) & 0xff); } } - usbnet_unlock_core(un); usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, 0, &unm); Index: src/sys/dev/usb/if_udav.c diff -u src/sys/dev/usb/if_udav.c:1.91 src/sys/dev/usb/if_udav.c:1.92 --- src/sys/dev/usb/if_udav.c:1.91 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_udav.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_udav.c,v 1.91 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_udav.c,v 1.92 2022/03/03 05:54:37 riastradh Exp $ */ /* $nabe: if_udav.c,v 1.3 2003/08/21 16:57:19 nabe Exp $ */ /* @@ -45,7 +45,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.91 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.92 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -238,14 +238,11 @@ udav_attach(device_t parent, device_t se usbnet_attach(un, "udavdet"); - usbnet_lock_core(un); - // /* reset the adapter */ // udav_reset(un); /* Get Ethernet Address */ err = udav_csr_read(un, UDAV_PAR, un->un_eaddr, ETHER_ADDR_LEN); - usbnet_unlock_core(un); if (err) { aprint_error_dev(self, "read MAC address failed\n"); return; @@ -523,7 +520,6 @@ udav_uno_init(struct ifnet *ifp) static void udav_reset(struct usbnet *un) { - usbnet_isowned_core(un); if (usbnet_isdying(un)) return; @@ -536,7 +532,6 @@ udav_reset(struct usbnet *un) static void udav_chip_init(struct usbnet *un) { - usbnet_isowned_core(un); /* Select PHY */ #if 1 Index: src/sys/dev/usb/if_ure.c diff -u src/sys/dev/usb/if_ure.c:1.51 src/sys/dev/usb/if_ure.c:1.52 --- src/sys/dev/usb/if_ure.c:1.51 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_ure.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ure.c,v 1.51 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_ure.c,v 1.52 2022/03/03 05:54:37 riastradh 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.51 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ure.c,v 1.52 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -393,8 +393,6 @@ ure_reset(struct usbnet *un) { int i; - usbnet_isowned_core(un); - ure_write_1(un, URE_PLA_CR, URE_MCU_TYPE_PLA, URE_CR_RST); for (i = 0; i < URE_TIMEOUT; i++) { @@ -415,8 +413,6 @@ ure_uno_init(struct ifnet *ifp) struct usbnet * const un = ifp->if_softc; uint8_t eaddr[8]; - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return EIO; @@ -899,7 +895,6 @@ ure_attach(device_t parent, device_t sel (un->un_flags != 0) ? "" : "unknown ", ver); - usbnet_lock_core(un); if (un->un_flags & URE_FLAG_8152) ure_rtl8152_init(un); else @@ -912,7 +907,6 @@ ure_attach(device_t parent, device_t sel else ure_read_mem(un, URE_PLA_BACKUP, URE_MCU_TYPE_PLA, eaddr, sizeof(eaddr)); - usbnet_unlock_core(un); if (ETHER_IS_ZERO(eaddr)) { maclo = 0x00f2 | (cprng_strong32() & 0xffff0000); machi = cprng_strong32() & 0xffff; Index: src/sys/dev/usb/if_url.c diff -u src/sys/dev/usb/if_url.c:1.90 src/sys/dev/usb/if_url.c:1.91 --- src/sys/dev/usb/if_url.c:1.90 Thu Mar 3 05:54:21 2022 +++ src/sys/dev/usb/if_url.c Thu Mar 3 05:54:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: if_url.c,v 1.90 2022/03/03 05:54:21 riastradh Exp $ */ +/* $NetBSD: if_url.c,v 1.91 2022/03/03 05:54:37 riastradh Exp $ */ /* * Copyright (c) 2001, 2002 @@ -44,7 +44,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.90 2022/03/03 05:54:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.91 2022/03/03 05:54:37 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -242,15 +242,12 @@ url_attach(device_t parent, device_t sel /* Set these up now for url_mem(). */ usbnet_attach(un, "urldet"); - usbnet_lock_core(un); - /* reset the adapter */ url_reset(un); /* Get Ethernet Address */ err = url_mem(un, URL_CMD_READMEM, URL_IDR0, (void *)un->un_eaddr, ETHER_ADDR_LEN); - usbnet_unlock_core(un); if (err) { aprint_error_dev(self, "read MAC address failed\n"); return; @@ -373,8 +370,6 @@ url_uno_init(struct ifnet *ifp) DPRINTF(("%s: %s: enter\n", device_xname(un->un_dev), __func__)); - usbnet_isowned_core(un); - if (usbnet_isdying(un)) return EIO;