Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2011 15:08:24 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@FreeBSD.org
Subject:   ukbd locking update
Message-ID:  <4EF088C8.8090906@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EF088C8.8090906>