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;