tasklets: Provide tasklet_disable_in_atomic()
authorThomas Gleixner <tglx@linutronix.de>
Tue, 9 Mar 2021 08:42:06 +0000 (09:42 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 17 Mar 2021 15:33:52 +0000 (16:33 +0100)
commitca5f625118955fc544c3cb3dee7055d33ecadafb
tree49314867119ecf8952eb9a06d0a0ee220b708ff9
parent6951547a1399c8f56468ed93bea8f769b891aec3
tasklets: Provide tasklet_disable_in_atomic()

Replacing the spin wait loops in tasklet_unlock_wait() with
wait_var_event() is not possible as a handful of tasklet_disable()
invocations are happening in atomic context. All other invocations are in
teardown paths which can sleep.

Provide tasklet_disable_in_atomic() and tasklet_unlock_spin_wait() to
convert the few atomic use cases over, which allows to change
tasklet_disable() and tasklet_unlock_wait() in a later step.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210309084241.563164193@linutronix.de
include/linux/interrupt.h