Module Name: src Committed By: riastradh Date: Mon Mar 31 14:45:35 UTC 2025
Modified Files: src/sys/arch/mips/ralink: ralink_ehci.c src/sys/dev/cardbus: ehci_cardbus.c src/sys/dev/pci: ehci_pci.c usb_pci.c Log Message: ehci(4): Sprinkle KERNEL_LOCKED_P and KNF on usb_*_add/rem. Mark with XXXSMP comments to be fixed later without the kernel lock. No functional change intended: callers generally do this from autoconf *_attach/detach routines, which run kernel-locked anyway (for the moment). Cleanup in preparation for: PR port-amd64/59180: System reboots instead of shutting down To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/mips/ralink/ralink_ehci.c cvs rdiff -u -r1.37 -r1.38 src/sys/dev/cardbus/ehci_cardbus.c cvs rdiff -u -r1.77 -r1.78 src/sys/dev/pci/ehci_pci.c cvs rdiff -u -r1.7 -r1.8 src/sys/dev/pci/usb_pci.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/arch/mips/ralink/ralink_ehci.c diff -u src/sys/arch/mips/ralink/ralink_ehci.c:1.9 src/sys/arch/mips/ralink/ralink_ehci.c:1.10 --- src/sys/arch/mips/ralink/ralink_ehci.c:1.9 Sat Aug 7 16:18:59 2021 +++ src/sys/arch/mips/ralink/ralink_ehci.c Mon Mar 31 14:45:35 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: ralink_ehci.c,v 1.9 2021/08/07 16:18:59 thorpej Exp $ */ +/* $NetBSD: ralink_ehci.c,v 1.10 2025/03/31 14:45:35 riastradh Exp $ */ /*- * Copyright (c) 2011 CradlePoint Technology, Inc. * All rights reserved. @@ -29,7 +29,7 @@ /* ralink_ehci.c -- Ralink EHCI USB Driver */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ralink_ehci.c,v 1.9 2021/08/07 16:18:59 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ralink_ehci.c,v 1.10 2025/03/31 14:45:35 riastradh Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -57,15 +57,11 @@ static void ralink_ehci_attach(device_t, static int ralink_ehci_detach(device_t, int); CFATTACH_DECL2_NEW(ralink_ehci, sizeof(struct ralink_ehci_softc), - ralink_ehci_match, ralink_ehci_attach, ralink_ehci_detach, - ehci_activate, NULL, ehci_childdet); + ralink_ehci_match, ralink_ehci_attach, ralink_ehci_detach, + ehci_activate, NULL, ehci_childdet); static TAILQ_HEAD(, ralink_usb_hc) ralink_usb_alldevs = - TAILQ_HEAD_INITIALIZER(ralink_usb_alldevs); - -#if 0 -struct usb_hc_alldevs ralink_usb_alldevs = TAILQ_HEAD_INITIALIZER(ralink_usb_alldevs); -#endif + TAILQ_HEAD_INITIALIZER(ralink_usb_alldevs); /* * ralink_ehci_match @@ -144,6 +140,7 @@ ralink_ehci_attach(device_t parent, devi * have lower function numbers so they should be enumerated already. */ int ncomp = 0; + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ralink_usb_alldevs */ TAILQ_FOREACH(ruh, &ralink_usb_alldevs, next) { aprint_normal_dev(self, "companion %s\n", device_xname(ruh->usb)); @@ -207,6 +204,9 @@ ralink_ehci_detach(device_t self, int fl void ralink_usb_hc_add(struct ralink_usb_hc *ruh, device_t usbp) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ralink_usb_alldevs */ + TAILQ_INSERT_TAIL(&ralink_usb_alldevs, ruh, next); ruh->usb = usbp; } @@ -214,5 +214,8 @@ ralink_usb_hc_add(struct ralink_usb_hc * void ralink_usb_hc_rem(struct ralink_usb_hc *ruh) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ralink_usb_alldevs */ + TAILQ_REMOVE(&ralink_usb_alldevs, ruh, next); } Index: src/sys/dev/cardbus/ehci_cardbus.c diff -u src/sys/dev/cardbus/ehci_cardbus.c:1.37 src/sys/dev/cardbus/ehci_cardbus.c:1.38 --- src/sys/dev/cardbus/ehci_cardbus.c:1.37 Sat Aug 7 16:19:10 2021 +++ src/sys/dev/cardbus/ehci_cardbus.c Mon Mar 31 14:45:35 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci_cardbus.c,v 1.37 2021/08/07 16:19:10 thorpej Exp $ */ +/* $NetBSD: ehci_cardbus.c,v 1.38 2025/03/31 14:45:35 riastradh Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ehci_cardbus.c,v 1.37 2021/08/07 16:19:10 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ehci_cardbus.c,v 1.38 2025/03/31 14:45:35 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -82,7 +82,7 @@ CFATTACH_DECL_NEW(ehci_cardbus, sizeof(s ehci_activate); static TAILQ_HEAD(, usb_cardbus) ehci_cardbus_alldevs = - TAILQ_HEAD_INITIALIZER(ehci_cardbus_alldevs); + TAILQ_HEAD_INITIALIZER(ehci_cardbus_alldevs); int ehci_cardbus_match(device_t parent, cfdata_t match, void *aux) @@ -175,6 +175,7 @@ ehci_cardbus_attach(device_t parent, dev * have lower function numbers so they should be enumerated already. */ ncomp = 0; + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_cardbus_alldevs */ TAILQ_FOREACH(up, &ehci_cardbus_alldevs, next) { if (up->bus == ca->ca_bus) { DPRINTF(("ehci_cardbus_attach: companion %s\n", @@ -232,6 +233,9 @@ void usb_cardbus_add(struct usb_cardbus *up, struct cardbus_attach_args *ca, device_t bu) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_cardbus_alldevs */ + TAILQ_INSERT_TAIL(&ehci_cardbus_alldevs, up, next); up->bus = ca->ca_bus; up->function = ca->ca_function; @@ -241,5 +245,8 @@ usb_cardbus_add(struct usb_cardbus *up, void usb_cardbus_rem(struct usb_cardbus *up) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_cardbus_alldevs */ + TAILQ_REMOVE(&ehci_cardbus_alldevs, up, next); } Index: src/sys/dev/pci/ehci_pci.c diff -u src/sys/dev/pci/ehci_pci.c:1.77 src/sys/dev/pci/ehci_pci.c:1.78 --- src/sys/dev/pci/ehci_pci.c:1.77 Sun Mar 24 03:29:02 2024 +++ src/sys/dev/pci/ehci_pci.c Mon Mar 31 14:45:35 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci_pci.c,v 1.77 2024/03/24 03:29:02 mrg Exp $ */ +/* $NetBSD: ehci_pci.c,v 1.78 2025/03/31 14:45:35 riastradh Exp $ */ /* * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ehci_pci.c,v 1.77 2024/03/24 03:29:02 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ehci_pci.c,v 1.78 2025/03/31 14:45:35 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -243,6 +243,7 @@ ehci_pci_attach(device_t parent, device_ const u_int maxncomp = EHCI_HCS_N_CC(EREAD4(&sc->sc, EHCI_HCSPARAMS)); KASSERT(maxncomp <= EHCI_COMPANION_MAX); ncomp = 0; + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_pci_alldevs */ TAILQ_FOREACH(up, &ehci_pci_alldevs, next) { if (up->bus == pa->pa_bus && up->device == pa->pa_device && !up->claimed) { Index: src/sys/dev/pci/usb_pci.c diff -u src/sys/dev/pci/usb_pci.c:1.7 src/sys/dev/pci/usb_pci.c:1.8 --- src/sys/dev/pci/usb_pci.c:1.7 Mon Apr 28 20:23:55 2008 +++ src/sys/dev/pci/usb_pci.c Mon Mar 31 14:45:35 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: usb_pci.c,v 1.7 2008/04/28 20:23:55 martin Exp $ */ +/* $NetBSD: usb_pci.c,v 1.8 2025/03/31 14:45:35 riastradh Exp $ */ /* * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc. @@ -30,31 +30,34 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usb_pci.c,v 1.7 2008/04/28 20:23:55 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usb_pci.c,v 1.8 2025/03/31 14:45:35 riastradh Exp $"); #include <sys/param.h> -#include <sys/systm.h> #include <sys/kernel.h> -#include <sys/queue.h> #include <sys/proc.h> +#include <sys/queue.h> +#include <sys/systm.h> #include <dev/pci/pcivar.h> #include <dev/pci/usb_pci.h> #include <dev/usb/usb.h> +#include <dev/usb/usb_mem.h> #include <dev/usb/usbdi.h> #include <dev/usb/usbdivar.h> -#include <dev/usb/usb_mem.h> #include <dev/usb/ehcireg.h> #include <dev/usb/ehcivar.h> struct usb_pci_alldevs ehci_pci_alldevs = - TAILQ_HEAD_INITIALIZER(ehci_pci_alldevs); + TAILQ_HEAD_INITIALIZER(ehci_pci_alldevs); void usb_pci_add(struct usb_pci *up, struct pci_attach_args *pa, device_t bu) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_pci_alldevs */ + TAILQ_INSERT_TAIL(&ehci_pci_alldevs, up, next); up->bus = pa->pa_bus; up->device = pa->pa_device; @@ -65,5 +68,8 @@ usb_pci_add(struct usb_pci *up, struct p void usb_pci_rem(struct usb_pci *up) { + + KASSERT(KERNEL_LOCKED_P()); /* XXXSMP ehci_pci_alldevs */ + TAILQ_REMOVE(&ehci_pci_alldevs, up, next); }