]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: use non-global mappings for UEFI runtime regions
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 17 Nov 2015 08:53:31 +0000 (09:53 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 18 Nov 2015 09:40:20 +0000 (09:40 +0000)
commit3d9a18b92a7e3b48f6069f3f9fa1fb9230e84831
tree8dd46aee28e086b06249e65042b03db96631eca4
parent7e6b5fca8f0c715455bd64a7a50a33a3b208547a
arm64: use non-global mappings for UEFI runtime regions

As pointed out by Russell King in response to the proposed ARM version
of this code, the sequence to switch between the UEFI runtime mapping
and current's actual userland mapping (and vice versa) is potentially
unsafe, since it leaves a time window between the switch to the new
page tables and the TLB flush where speculative accesses may hit on
stale global TLB entries.

So instead, use non-global mappings, and perform the switch via the
ordinary ASID-aware context switch routines.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/mmu_context.h
arch/arm64/kernel/efi.c