TencentOS-kernel/arch/powerpc
Paul Mackerras 8affaac365 KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
[ Upstream commit 11362b1befeadaae4d159a8cddcdaf6b8afe08f9 ]

There is a potential race condition between hypervisor page faults
and flushing a memslot.  It is possible for a page fault to read the
memslot before a memslot is updated and then write a PTE to the
partition-scoped page tables after kvmppc_radix_flush_memslot has
completed.  (Note that this race has never been explicitly observed.)

To close this race, it is sufficient to increment the MMU sequence
number while the kvm->mmu_lock is held.  That will cause
mmu_notifier_retry() to return true, and the page fault will then
return to the guest without inserting a PTE.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-16 16:37:22 +08:00
..
boot powerpc/boot: Fix CONFIG_PPC_MPC52XX references 2021-03-16 16:33:42 +08:00
configs vgacon: remove software scrollback support 2021-03-16 16:36:07 +08:00
crypto Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
include KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like the valid ones 2021-03-16 16:37:02 +08:00
kernel powerpc/traps: Make unrecoverable NMIs die instead of panic 2021-03-16 16:37:18 +08:00
kvm KVM: PPC: Book3S HV: Close race with page faults around memslot flushes 2021-03-16 16:37:22 +08:00
lib Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
math-emu Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
mm powerpc/book3s64: Fix error handling in mm_iommu_do_alloc() 2021-03-16 16:36:57 +08:00
net Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
oprofile Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
perf powerpc/perf: Implement a global lock to avoid races between trace, core and thread imc events. 2021-03-16 16:37:10 +08:00
platforms powerpc/spufs: add CONFIG_COREDUMP dependency 2021-03-16 16:34:53 +08:00
purgatory Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
sysdev powerpc/xive: Ignore kmemleak false positives 2021-03-16 16:34:46 +08:00
tools Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
xmon powerpc/xmon: Restrict when kernel is locked down 2021-03-16 16:28:45 +08:00
Kbuild Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Kconfig powerpc/kasan: Fix stack overflow by increasing THREAD_SHIFT 2021-03-16 16:29:58 +08:00
Kconfig.debug Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Makefile Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Makefile.postlink Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00