Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/usb usb(4): Sprinkle kernel lock assertions.
details: https://anonhg.NetBSD.org/src/rev/6a4b52c3ab80
branches: trunk
changeset: 983855:6a4b52c3ab80
user: riastradh <riastradh%NetBSD.org@localhost>
date: Sat Jun 12 12:13:10 2021 +0000
description:
usb(4): Sprinkle kernel lock assertions.
diffstat:
sys/dev/usb/uhub.c | 10 ++++++++--
sys/dev/usb/usb.c | 9 +++++++--
sys/dev/usb/usb_subr.c | 13 +++++++++++--
sys/dev/usb/xhci.c | 6 ++++--
4 files changed, 30 insertions(+), 8 deletions(-)
diffs (171 lines):
diff -r 0343bd63826c -r 6a4b52c3ab80 sys/dev/usb/uhub.c
--- a/sys/dev/usb/uhub.c Sat Jun 12 12:12:11 2021 +0000
+++ b/sys/dev/usb/uhub.c Sat Jun 12 12:13:10 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: uhub.c,v 1.148 2021/06/12 12:11:01 riastradh Exp $ */
+/* $NetBSD: uhub.c,v 1.149 2021/06/12 12:13:10 riastradh Exp $ */
/* $FreeBSD: src/sys/dev/usb/uhub.c,v 1.18 1999/11/17 22:33:43 n_hibma Exp $ */
/* $OpenBSD: uhub.c,v 1.86 2015/06/29 18:27:40 mpi Exp $ */
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.148 2021/06/12 12:11:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.149 2021/06/12 12:13:10 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -533,6 +533,8 @@
device_unit(sc->sc_dev), (uintptr_t)dev, dev->ud_addr,
dev->ud_speed);
+ KASSERT(KERNEL_LOCKED_P());
+
if (!sc->sc_running)
return USBD_NOT_STARTED;
@@ -930,6 +932,8 @@
struct usbd_device *dev;
int port;
+ KASSERT(KERNEL_LOCKED_P());
+
if (uhub_explore_enter(sc) != 0)
return EBUSY;
for (port = 1; port <= hub->uh_hubdesc.bNbrPorts; port++) {
@@ -953,6 +957,8 @@
int port;
int i;
+ KASSERT(KERNEL_LOCKED_P());
+
if (!devhub->ud_hub)
/* should never happen; children are only created after init */
panic("hub not fully initialised, but child deleted?");
diff -r 0343bd63826c -r 6a4b52c3ab80 sys/dev/usb/usb.c
--- a/sys/dev/usb/usb.c Sat Jun 12 12:12:11 2021 +0000
+++ b/sys/dev/usb/usb.c Sat Jun 12 12:13:10 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: usb.c,v 1.194 2021/06/12 12:11:38 riastradh Exp $ */
+/* $NetBSD: usb.c,v 1.195 2021/06/12 12:13:10 riastradh Exp $ */
/*
* Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.194 2021/06/12 12:11:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.195 2021/06/12 12:13:10 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -453,6 +453,8 @@
USBHIST_FUNC(); USBHIST_CALLED(usbdebug);
+ KASSERT(KERNEL_LOCKED_P());
+
/* Protected by KERNEL_LOCK */
nusbbusses++;
@@ -690,6 +692,8 @@
USBHIST_FUNC(); USBHIST_CALLED(usbdebug);
+ KASSERT(KERNEL_LOCKED_P());
+
/*
* In case this controller is a companion controller to an
* EHCI controller we need to wait until the EHCI controller
@@ -1146,6 +1150,7 @@
USBHIST_FUNC(); USBHIST_CALLED(usbdebug);
+ KASSERT(KERNEL_LOCKED_P());
KASSERT(mutex_owned(bus->ub_lock));
if (usb_noexplore > 1)
diff -r 0343bd63826c -r 6a4b52c3ab80 sys/dev/usb/usb_subr.c
--- a/sys/dev/usb/usb_subr.c Sat Jun 12 12:12:11 2021 +0000
+++ b/sys/dev/usb/usb_subr.c Sat Jun 12 12:13:10 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: usb_subr.c,v 1.252 2021/06/12 12:11:27 riastradh Exp $ */
+/* $NetBSD: usb_subr.c,v 1.253 2021/06/12 12:13:10 riastradh Exp $ */
/* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */
/*
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.252 2021/06/12 12:11:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.253 2021/06/12 12:13:10 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -957,6 +957,9 @@
int i, j, loc;
device_t dv;
+ /* Needed for access to dev->ud_subdevs. */
+ KASSERT(KERNEL_LOCKED_P());
+
nifaces = dev->ud_cdesc->bNumInterface;
ifaces = kmem_zalloc(nifaces * sizeof(*ifaces), KM_SLEEP);
for (i = 0; i < nifaces; i++) {
@@ -1047,6 +1050,8 @@
int confi, nifaces;
usbd_status err;
+ KASSERT(KERNEL_LOCKED_P());
+
/* First try with device specific drivers. */
err = usbd_attachwholedevice(parent, dev, port, 0);
if (dev->ud_nifaces_claimed || err)
@@ -1111,6 +1116,8 @@
{
int i, loc;
+ KASSERT(KERNEL_LOCKED_P());
+
if (locators != NULL) {
loc = locators[USBIFIFCF_PORT];
if (loc != USBIFIFCF_PORT_DEFAULT && loc != port)
@@ -1169,6 +1176,8 @@
int i;
int p;
+ KASSERT(KERNEL_LOCKED_P());
+
if (bus->ub_methods->ubm_newdev != NULL)
return (bus->ub_methods->ubm_newdev)(parent, bus, depth, speed,
port, up);
diff -r 0343bd63826c -r 6a4b52c3ab80 sys/dev/usb/xhci.c
--- a/sys/dev/usb/xhci.c Sat Jun 12 12:12:11 2021 +0000
+++ b/sys/dev/usb/xhci.c Sat Jun 12 12:13:10 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: xhci.c,v 1.144 2021/06/06 18:37:20 jdolecek Exp $ */
+/* $NetBSD: xhci.c,v 1.145 2021/06/12 12:13:10 riastradh Exp $ */
/*
* Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.144 2021/06/06 18:37:20 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.145 2021/06/12 12:13:10 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -2778,6 +2778,8 @@
XHCIHIST_CALLARGS("port %ju depth %ju speed %ju up %#jx",
port, depth, speed, (uintptr_t)up);
+ KASSERT(KERNEL_LOCKED_P());
+
dev = kmem_zalloc(sizeof(*dev), KM_SLEEP);
dev->ud_bus = bus;
dev->ud_quirks = &usbd_no_quirk;
Home |
Main Index |
Thread Index |
Old Index