+4
−3
Loading
The TAS fallback can be invoked directly when queued spin locks are disabled, and through the slow path when paravirt is enabled for queued spin locks. In the latter case, the res_spin_lock macro will attempt the fast path and already hold the entry when entering the slow path. This will lead to creation of extraneous entries that are not released, which may cause false positives for deadlock detection. Fix this by always preceding invocation of the TAS fallback in every case with the grabbing of the held lock entry, and add a comment to make note of this. Fixes: c9102a68 ("rqspinlock: Add a test-and-set fallback") Reported-by:Amery Hung <ameryhung@gmail.com> Signed-off-by:
Kumar Kartikeya Dwivedi <memxor@gmail.com> Tested-by:
Amery Hung <ameryhung@gmail.com> Link: https://lore.kernel.org/r/20260122115911.3668985-1-memxor@gmail.com Signed-off-by:
Alexei Starovoitov <ast@kernel.org>