ukbd locking update
Andriy Gapon
avg at FreeBSD.org
Tue Dec 20 13:08:31 UTC 2011
I completing a patch that changes some locking in ukbd to account for
SCHEDULER_STOPPED and for other realities of the code.
As a preview I would like to share couple of observations that had their effect
on the patch.
1. Acquiring Giant in device_attach, _detach in similar newbus method
implementations should be redundant because those are already executed with
Giant held. That's done either by the general newbus code or via
usbd_enum_lock() when the operations are executed in the USB explore thread.
2. As discussed before:
if (!mutex_owned(&Giant))
mutex_lock(&Giant)
this pattern does not make sense, because the Giant is recursive and can be
simply acquired without any check.
Do you agree?
--
Andriy Gapon
More information about the freebsd-usb
mailing list