WSL2-Linux-Kernel/kernel/locking
Zqiang 3a010c4932 locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
When a interruptible mutex locker is interrupted by a signal
without acquiring this lock and removed from the wait queue.
if the mutex isn't contended enough to have a waiter
put into the wait queue again, the setting of the WAITER
bit will force mutex locker to go into the slowpath to
acquire the lock every time, so if the wait queue is empty,
the WAITER bit need to be clear.

Fixes: 040a0a3710 ("mutex: Add support for wound/wait style locks")
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20210517034005.30828-1-qiang.zhang@windriver.com
2021-05-18 12:53:51 +02:00
..
Makefile locking/rtmutex: Move debug functions as inlines into common header 2021-03-29 15:57:04 +02:00
irqflag-debug.c
lock_events.c
lock_events.h
lock_events_list.h
lockdep.c locking/lockdep: Correct calling tracepoints 2021-05-18 12:53:50 +02:00
lockdep_internals.h lockdep: Allow tuning tracing capacity constants. 2021-04-05 20:33:57 +09:00
lockdep_proc.c locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
lockdep_states.h
locktorture.c locking/locktorture: Fix incorrect use of ww_acquire_ctx in ww_mutex test 2021-03-19 12:13:10 +01:00
mcs_spinlock.h locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
mutex-debug.c locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal 2021-05-18 12:53:51 +02:00
mutex-debug.h locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal 2021-05-18 12:53:51 +02:00
mutex.c locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal 2021-05-18 12:53:51 +02:00
mutex.h locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal 2021-05-18 12:53:51 +02:00
osq_lock.c locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
percpu-rwsem.c
qrwlock.c locking/qrwlock: Cleanup queued_write_lock_slowpath() 2021-05-06 15:33:49 +02:00
qspinlock.c
qspinlock_paravirt.h
qspinlock_stat.h
rtmutex.c locking/rtmutex: Clean up signal handling in __rt_mutex_slowlock() 2021-03-29 15:57:05 +02:00
rtmutex_common.h locking/rtmutex: Move debug functions as inlines into common header 2021-03-29 15:57:04 +02:00
rwsem.c locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
semaphore.c
spinlock.c locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
spinlock_debug.c
test-ww_mutex.c