android_kernel_oneplus_msm8998/arch/powerpc
Paul Mackerras b25c62cc16 KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list
[ Upstream commit 1659e27d2bc1ef47b6d031abe01b467f18cb72d9 ]

Currently the Book 3S KVM code uses kvm->lock to synchronize access
to the kvm->arch.rtas_tokens list.  Because this list is scanned
inside kvmppc_rtas_hcall(), which is called with the vcpu mutex held,
taking kvm->lock cause a lock inversion problem, which could lead to
a deadlock.

To fix this, we add a new mutex, kvm->arch.rtas_token_lock, which nests
inside the vcpu mutexes, and use that instead of kvm->lock when
accessing the rtas token list.

This removes the lockdep_assert_held() in kvmppc_rtas_tokens_free().
At this point we don't hold the new mutex, but that is OK because
kvmppc_rtas_tokens_free() is only called when the whole VM is being
destroyed, and at that point nothing can be looking up a token in
the list.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-06-22 08:18:26 +02:00
..
boot powerpc/boot: Fix missing check of lseek() return value 2019-06-11 12:23:54 +02:00
configs powerpc updates for 4.4 2015-11-05 23:38:43 -08:00
crypto crypto: powerpc/md5 - use md5 IV MD5_HX instead of their raw value 2015-05-18 12:20:20 +08:00
include KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list 2019-06-22 08:18:26 +02:00
kernel powerpc/64s: Include cpu header 2019-05-16 19:45:16 +02:00
kvm KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list 2019-06-22 08:18:26 +02:00
lib powerpc/lib: fix book3s/32 boot failure due to code patching 2019-05-16 19:45:18 +02:00
math-emu
mm powerpc/numa: improve control of topology updates 2019-06-11 12:23:58 +02:00
net powerpc/bpf/jit: Fix 32-bit JIT for seccomp_data access 2018-05-30 07:49:00 +02:00
oprofile powerpc: Remove mtmsrd(), use existing mtmsr() 2015-07-13 15:47:28 +10:00
perf powerpc/perf: Fix kernel address leak via sampling registers 2018-05-30 07:49:10 +02:00
platforms powerpc/powernv: Query firmware for count cache flush settings 2019-05-16 19:44:50 +02:00
sysdev powerpc: Fix size calculation using resource_size() 2018-09-15 09:40:39 +02:00
xmon powerpc/64s: Improve RFI L1-D cache flush fallback 2019-05-16 19:44:44 +02:00
Kconfig powerpc/fsl: Add barrier_nospec implementation for NXP PowerPC Book3E 2019-05-16 19:44:49 +02:00
Kconfig.debug powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
Makefile powerpc/cell: Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU 2015-10-19 19:51:18 +11:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00