mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
new-bus: Add taskqueue_bus to process hot-plug device events
Use a system-wide taskqueue for hot-plug events. This avoids possibly
blocking unrelated events on the thread taskqueue without requiring
multiple driver-specific taskqueues.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D49268
(cherry picked from commit 44d5f5ed1e)
This commit is contained in:
parent
0a515a8d36
commit
3a54ca5e28
2 changed files with 9 additions and 0 deletions
|
|
@ -51,6 +51,7 @@
|
|||
#include <sys/smp.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/taskqueue.h>
|
||||
#include <sys/bus.h>
|
||||
#include <sys/cpuset.h>
|
||||
#ifdef INTRNG
|
||||
|
|
@ -120,6 +121,8 @@ struct device_prop_elm {
|
|||
LIST_ENTRY(device_prop_elm) link;
|
||||
};
|
||||
|
||||
TASKQUEUE_DEFINE_THREAD(bus);
|
||||
|
||||
static void device_destroy_props(device_t dev);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -215,4 +215,10 @@ struct taskqueue *taskqueue_create_fast(const char *name, int mflags,
|
|||
taskqueue_enqueue_fn enqueue,
|
||||
void *context);
|
||||
|
||||
/*
|
||||
* This queue is used to process asynchronous device events such as
|
||||
* hot plug insertion and removal of devices.
|
||||
*/
|
||||
TASKQUEUE_DECLARE(bus);
|
||||
|
||||
#endif /* !_SYS_TASKQUEUE_H_ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue