git: 55a3bd000d97 - main - usb(4): Make sure the enumeration thread doesn't loop too fast.

From: Hans Petter Selasky <hselasky_at_FreeBSD.org>
Date: Wed, 05 Oct 2022 10:13:41 UTC
The branch main has been updated by hselasky:

URL: https://cgit.FreeBSD.org/src/commit/?id=55a3bd000d9799f431c207e359466484ac63c137

commit 55a3bd000d9799f431c207e359466484ac63c137
Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
AuthorDate: 2022-06-09 13:15:49 +0000
Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
CommitDate: 2022-10-05 10:12:33 +0000

    usb(4): Make sure the enumeration thread doesn't loop too fast.
    
    MFC after:      1 week
    Sponsored by:   NVIDIA Networking
---
 sys/dev/usb/controller/usb_controller.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c
index 0897af0492cb..959f54a4583f 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -414,6 +414,9 @@ usb_bus_explore(struct usb_proc_msg *pm)
 #if USB_HAVE_ROOT_MOUNT_HOLD
 	usb_root_mount_rel(bus);
 #endif
+
+	/* Nice the enumeration a bit, to avoid looping too fast. */
+	usb_pause_mtx(&bus->bus_mtx, USB_MS_TO_TICKS(16));
 }
 
 /*------------------------------------------------------------------------*