android_kernel_motorola_sm6375/kernel/locking
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Waiman Long 710d9fd2f4 locking/rwsem: Fix kernel crash when spinning on RWSEM_OWNER_UNKNOWN
commit 39e7234f00bc93613c086ae42d852d5f4147120a upstream.

The commit 91d2a812df ("locking/rwsem: Make handoff writer
optimistically spin on owner") will allow a recently woken up waiting
writer to spin on the owner. Unfortunately, if the owner happens to be
RWSEM_OWNER_UNKNOWN, the code will incorrectly spin on it leading to a
kernel crash. This is fixed by passing the proper non-spinnable bits
to rwsem_spin_on_owner() so that RWSEM_OWNER_UNKNOWN will be treated
as a non-spinnable target.

Fixes: 91d2a812df ("locking/rwsem: Make handoff writer optimistically spin on owner")

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Christoph Hellwig <hch@lst.de>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20200115154336.8679-1-longman@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-23 08:22:37 +01:00
..
lock_events.c
lock_events.h locking/lock_events: Use raw_cpu_{add,inc}() for stats 2019-06-03 12:32:56 +02:00
lock_events_list.h locking/rwsem: Adaptive disabling of reader optimistic spinning 2019-06-17 12:28:09 +02:00
lockdep.c Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 16:49:55 -07:00
lockdep_internals.h locking/lockdep: Report more stack trace statistics 2019-07-25 15:43:28 +02:00
lockdep_proc.c locking/lockdep: Report more stack trace statistics 2019-07-25 15:43:28 +02:00
lockdep_states.h
locktorture.c
Makefile locking/rwsem: Merge rwsem.h and rwsem-xadd.c into rwsem.c 2019-06-17 12:27:57 +02:00
mcs_spinlock.h
mutex-debug.c
mutex-debug.h
mutex.c mutex: Fix up mutex_waiter usage 2019-08-08 09:09:25 +02:00
mutex.h mutex: Fix up mutex_waiter usage 2019-08-08 09:09:25 +02:00
osq_lock.c
percpu-rwsem.c Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu 2019-06-28 19:46:47 +02:00
qrwlock.c
qspinlock.c
qspinlock_paravirt.h Revert "locking/pvqspinlock: Don't wait if vCPU is preempted" 2019-09-25 10:22:37 +02:00
qspinlock_stat.h
rtmutex-debug.c
rtmutex-debug.h
rtmutex.c sched/core: Convert get_task_struct() to return the task 2019-07-25 15:51:54 +02:00
rtmutex.h
rtmutex_common.h
rwsem.c locking/rwsem: Fix kernel crash when spinning on RWSEM_OWNER_UNKNOWN 2020-01-23 08:22:37 +01:00
rwsem.h locking/rwsem: Merge rwsem.h and rwsem-xadd.c into rwsem.c 2019-06-17 12:27:57 +02:00
semaphore.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436 2019-06-05 17:37:17 +02:00
spinlock.c
spinlock_debug.c locking/spinlock/debug: Fix various data races 2020-01-12 12:21:13 +01:00
test-ww_mutex.c