arm64: flush: use local TLB and I-cache invalidation
authorWill Deacon <will.deacon@arm.com>
Tue, 6 Oct 2015 17:46:23 +0000 (18:46 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 7 Oct 2015 10:45:27 +0000 (11:45 +0100)
commit8e63d38876691756f9bc6930850f1fb77809be1b
tree74f5a739675a90c71d1f07e937c2e3f512781b7e
parentfa7aae8a4257e6be7051420dac1f150c1eef721b
arm64: flush: use local TLB and I-cache invalidation

There are a number of places where a single CPU is running with a
private page-table and we need to perform maintenance on the TLB and
I-cache in order to ensure correctness, but do not require the operation
to be broadcast to other CPUs.

This patch adds local variants of tlb_flush_all and __flush_icache_all
to support these use-cases and updates the callers respectively.
__local_flush_icache_all also implies an isb, since it is intended to be
used synchronously.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: David Daney <david.daney@cavium.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/cacheflush.h
arch/arm64/include/asm/tlbflush.h
arch/arm64/kernel/efi.c
arch/arm64/kernel/smp.c
arch/arm64/kernel/suspend.c
arch/arm64/mm/context.c
arch/arm64/mm/mmu.c