diff options
| author | Emmanuel Vadot <manu@FreeBSD.org> | 2026-10-28 15:02:00 +0000 |
|---|---|---|
| committer | Emmanuel Vadot <manu@FreeBSD.org> | 2026-11-04 06:35:19 +0000 |
| commit | f739d9f46c24da39651ae981a549a55eb2a3d006 (patch) | |
| tree | eb5a74747ea945f82b01cc79567b2fea513e7146 /usr.sbin/bsdconfig/datetime/include | |
| parent | c15aab01e9ea281f5fb071866619d9e664667672 (diff) | |
tasklet_unlock_wait() waited for the tasklet state to become idle. Linux
only waits for TASKLET_STATE_RUN, i.e. for a tasklet that is currently
executing. A tasklet which is scheduled but disabled does not run until
it is enabled again, so in LinuxKPI it stays in the BUSY (queued) state and
the waiter never returns.
This is what happens when unloading i915: execlists_reset_prepare()
disables the engine tasklet with __tasklet_disable_sync_once() while the
tasklet is queued and kldunload loops forever in pause().
Do not wait if the tasklet is only queued and disabled.
Reviewed by: bz
Sponsored by: Beckhoff Automation GmbH & Co. KG
Diffstat (limited to 'usr.sbin/bsdconfig/datetime/include')
0 files changed, 0 insertions, 0 deletions
