Thu Mar 3 05:51:27 2022 UTC ()
usbnet drivers: No need for usbnet_busy in uno_mcast.

This callback always runs with IFNET_LOCK held, and during a task
that usbnet_detach prevents scheduling anew and waits for finishing
before completing the detach, so there is no need to hang onto a
reference count here.


(riastradh)
diff -r1.135 -r1.136 src/sys/dev/usb/if_axe.c
diff -r1.77 -r1.78 src/sys/dev/usb/if_axen.c
diff -r1.95 -r1.96 src/sys/dev/usb/if_cue.c
diff -r1.108 -r1.109 src/sys/dev/usb/if_kue.c
diff -r1.11 -r1.12 src/sys/dev/usb/if_mos.c
diff -r1.67 -r1.68 src/sys/dev/usb/if_mue.c
diff -r1.75 -r1.76 src/sys/dev/usb/if_smsc.c
diff -r1.82 -r1.83 src/sys/dev/usb/if_udav.c
diff -r1.82 -r1.83 src/sys/dev/usb/if_url.c
diff -r1.44 -r1.45 src/sys/dev/usb/if_ure.c

cvs diff -r1.135 -r1.136 src/sys/dev/usb/if_axe.c (expand / switch to context diff)
--- src/sys/dev/usb/if_axe.c 2022/03/03 05:51:17 1.135
+++ src/sys/dev/usb/if_axe.c 2022/03/03 05:51:27 1.136
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_axe.c,v 1.135 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_axe.c,v 1.136 2022/03/03 05:51:27 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.135 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_axe.c,v 1.136 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -1326,11 +1326,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	axe_rcvfilt_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.77 -r1.78 src/sys/dev/usb/if_axen.c (expand / switch to context diff)
--- src/sys/dev/usb/if_axen.c 2022/03/03 05:51:17 1.77
+++ src/sys/dev/usb/if_axen.c 2022/03/03 05:51:27 1.78
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_axen.c,v 1.77 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_axen.c,v 1.78 2022/03/03 05:51:27 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.77 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_axen.c,v 1.78 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -580,11 +580,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	axen_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.95 -r1.96 src/sys/dev/usb/if_cue.c (expand / switch to context diff)
--- src/sys/dev/usb/if_cue.c 2022/03/03 05:51:17 1.95
+++ src/sys/dev/usb/if_cue.c 2022/03/03 05:51:27 1.96
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_cue.c,v 1.95 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_cue.c,v 1.96 2022/03/03 05:51:27 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.95 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cue.c,v 1.96 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -683,11 +683,9 @@
 	struct usbnet * const	un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	cue_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.108 -r1.109 src/sys/dev/usb/if_kue.c (expand / switch to context diff)
--- src/sys/dev/usb/if_kue.c 2022/03/03 05:51:17 1.108
+++ src/sys/dev/usb/if_kue.c 2022/03/03 05:51:27 1.109
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_kue.c,v 1.108 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_kue.c,v 1.109 2022/03/03 05:51:27 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1997, 1998, 1999, 2000
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.108 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.109 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -643,11 +643,9 @@
 	struct usbnet * const	un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	kue_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.11 -r1.12 src/sys/dev/usb/if_mos.c (expand / switch to context diff)
--- src/sys/dev/usb/if_mos.c 2022/03/03 05:51:17 1.11
+++ src/sys/dev/usb/if_mos.c 2022/03/03 05:51:27 1.12
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_mos.c,v 1.11 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_mos.c,v 1.12 2022/03/03 05:51:27 riastradh Exp $	*/
 /*	$OpenBSD: if_mos.c,v 1.40 2019/07/07 06:40:10 kevlo Exp $	*/
 
 /*
@@ -72,7 +72,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_mos.c,v 1.11 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_mos.c,v 1.12 2022/03/03 05:51:27 riastradh Exp $");
 
 #include <sys/param.h>
 
@@ -773,11 +773,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	mos_rcvfilt_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.67 -r1.68 src/sys/dev/usb/if_mue.c (expand / switch to context diff)
--- src/sys/dev/usb/if_mue.c 2022/03/03 05:51:17 1.67
+++ src/sys/dev/usb/if_mue.c 2022/03/03 05:51:27 1.68
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_mue.c,v 1.67 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_mue.c,v 1.68 2022/03/03 05:51:27 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.67 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_mue.c,v 1.68 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -1294,11 +1294,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	mue_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.75 -r1.76 src/sys/dev/usb/if_smsc.c (expand / switch to context diff)
--- src/sys/dev/usb/if_smsc.c 2022/03/03 05:51:17 1.75
+++ src/sys/dev/usb/if_smsc.c 2022/03/03 05:51:27 1.76
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_smsc.c,v 1.75 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_smsc.c,v 1.76 2022/03/03 05:51:27 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.75 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_smsc.c,v 1.76 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -774,11 +774,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	smsc_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.82 -r1.83 src/sys/dev/usb/if_udav.c (expand / switch to context diff)
--- src/sys/dev/usb/if_udav.c 2022/03/03 05:51:17 1.82
+++ src/sys/dev/usb/if_udav.c 2022/03/03 05:51:27 1.83
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_udav.c,v 1.82 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_udav.c,v 1.83 2022/03/03 05:51:27 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.82 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_udav.c,v 1.83 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -719,11 +719,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	udav_setiff_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.82 -r1.83 src/sys/dev/usb/if_url.c (expand / switch to context diff)
--- src/sys/dev/usb/if_url.c 2022/03/03 05:51:17 1.82
+++ src/sys/dev/usb/if_url.c 2022/03/03 05:51:27 1.83
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_url.c,v 1.82 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_url.c,v 1.83 2022/03/03 05:51:27 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2001, 2002
@@ -44,7 +44,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.82 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_url.c,v 1.83 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -561,11 +561,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	url_rcvfilt_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }
 

cvs diff -r1.44 -r1.45 src/sys/dev/usb/if_ure.c (expand / switch to context diff)
--- src/sys/dev/usb/if_ure.c 2022/03/03 05:51:17 1.44
+++ src/sys/dev/usb/if_ure.c 2022/03/03 05:51:27 1.45
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ure.c,v 1.44 2022/03/03 05:51:17 riastradh Exp $	*/
+/*	$NetBSD: if_ure.c,v 1.45 2022/03/03 05:51:27 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.44 2022/03/03 05:51:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ure.c,v 1.45 2022/03/03 05:51:27 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -804,11 +804,9 @@
 	struct usbnet * const un = ifp->if_softc;
 
 	usbnet_lock_core(un);
-	usbnet_busy(un);
 
 	ure_rcvfilt_locked(un);
 
-	usbnet_unbusy(un);
 	usbnet_unlock_core(un);
 }