alistair23-linux/arch/arm64
Will Deacon 86c9e8126e arm64: mm: Fix false positives in set_pte_at access/dirty race detection
Jiankang reports that our race detection in set_pte_at is firing when
copying the page tables in dup_mmap as a result of a fork(). In this
situation, the page table isn't actually live and so there is no way
that we can race with a concurrent update from the hardware page table
walker.

This patch reworks the race detection so that we require either the
mm to match the current active_mm (i.e. currently installed in our TTBR0)
or the mm_users count to be greater than 1, implying that the page table
could be live in another CPU. The mm_users check might still be racy,
but we'll avoid false positives and it's not realistic to validate that
all the necessary locks are held as part of this assertion.

Cc: Yisheng Xie <xieyisheng1@huawei.com>
Reported-by: Jiankang Chen <chenjiankang1@huawei.com>
Tested-by: Jiankang Chen <chenjiankang1@huawei.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-12 11:42:24 +00:00
..
boot Amlogic fixes for v4.15-rc 2017-12-09 20:23:29 -08:00
configs arm64: defconfig: enable CONFIG_GPIO_UNIPHIER 2017-10-30 14:41:54 +01:00
crypto License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
include arm64: mm: Fix false positives in set_pte_at access/dirty race detection 2017-12-12 11:42:24 +00:00
kernel arm64/sve: Avoid dereference of dead task_struct in KVM guest entry 2017-12-06 19:08:05 +00:00
kvm kvm: arm64: handle single-step of hyp emulated mmio instructions 2017-11-29 18:17:47 +01:00
lib arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
mm arm64: Initialise high_memory global variable earlier 2017-12-11 16:13:10 +00:00
net
xen
Kconfig arm64/mm/kasan: don't use vmemmap_populate() to initialize shadow 2017-11-15 18:21:05 -08:00
Kconfig.debug
Kconfig.platforms ARM: SoC driver updates for v4.15 2017-11-16 16:05:01 -08:00
Makefile arm64: ftrace: emit ftrace-mod.o contents through code 2017-12-01 13:04:59 +00:00