]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
Merge revision 211236 form current:
authorgibbs <gibbs@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 30 Nov 2010 22:25:44 +0000 (22:25 +0000)
committergibbs <gibbs@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 30 Nov 2010 22:25:44 +0000 (22:25 +0000)
commitd95fd4824392569990b043469e77363ba33a87d0
treec870c5b2acecae02a40ac4ec28b19aa27bcab96d
parentd0e0bb75f265cbcebe91ca8eab2d08fbf29e700a
Merge revision 211236 form current:

Allow interrupt driven config hooks to be registered from config hook callbacks.

Interrupt driven configuration hooks serve two purposes: they are a
mechanism for registering for a callback that is invoked once interrupt
services are available, and they hold off root device selection so long
as any configuration hooks are still active.  Before this change, it was
not possible to safely register additional hooks from the context of a
configuration hook callback.  The need for this feature arises when
interrupts are required to discover new devices (e.g. access to the XenStore
to find para-virtualized devices) which in turn also require the ability
to hold off root device selection until some lengthy, interrupt driven,
configuration task has completed (e.g. Xen front/back device driver
negotiation).

More specifically, the mutex protecting the list of active configuration
hooks is never held during a callback, and static information is used
to ensure proper ordering and only a single callback to each hook even
when faced with registration or removal of a hook during an active run.

Sponsored by: Spectra Logic Corporation
Approved by: re (kib)

git-svn-id: svn://svn.freebsd.org/base/stable/8@216087 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/kern/subr_autoconf.c