kernel_samsung_a53x/kernel/locking
Roland Xu 07dcd58fea rtmutex: Drop rt_mutex::wait_lock before scheduling
commit d33d26036a0274b472299d7dcdaa5fb34329f91b upstream.

rt_mutex_handle_deadlock() is called with rt_mutex::wait_lock held.  In the
good case it returns with the lock held and in the deadlock case it emits a
warning and goes into an endless scheduling loop with the lock held, which
triggers the 'scheduling in atomic' warning.

Unlock rt_mutex::wait_lock in the dead lock case before issuing the warning
and dropping into the schedule for ever loop.

[ tglx: Moved unlock before the WARN(), removed the pointless comment,
  	massaged changelog, added Fixes tag ]

Fixes: 3d5c9340d194 ("rtmutex: Handle deadlock detection smarter")
Signed-off-by: Roland Xu <mu001999@outlook.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/ME0P300MB063599BEF0743B8FA339C2CECC802@ME0P300MB0635.AUSP300.PROD.OUTLOOK.COM
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:21:09 +01:00
..
lock_events.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lock_events.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lock_events_list.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lockdep.c lockdep: Fix block chain corruption 2024-11-18 12:10:56 +01:00
lockdep_internals.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lockdep_proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lockdep_states.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
locktorture.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mcs_spinlock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mutex-debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mutex-debug.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mutex.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mutex.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
osq_lock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
percpu-rwsem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
qrwlock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
qspinlock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
qspinlock_paravirt.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
qspinlock_stat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtmutex-debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtmutex-debug.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtmutex.c rtmutex: Drop rt_mutex::wait_lock before scheduling 2024-11-23 23:21:09 +01:00
rtmutex.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtmutex_common.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rwsem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rwsem.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
semaphore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
spinlock.c locking/rwlocks: introduce write_lock_nested 2024-11-19 17:44:05 +01:00
spinlock_debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
test-ww_mutex.c locking/ww_mutex/test: Fix potential workqueue corruption 2024-11-18 11:43:11 +01:00