arm64: kasan: mte: move GCR_EL1 switch to task switch when KASAN disabled
authorPeter Collingbourne <pcc@google.com>
Fri, 24 Sep 2021 01:06:55 +0000 (18:06 -0700)
committerWill Deacon <will@kernel.org>
Wed, 29 Sep 2021 16:18:57 +0000 (17:18 +0100)
commite5af50a5df571c1d0268b02f924de49b742c990f
tree51b2efdd63de08bf3e1baec22fca292ba5013dfd
parent5816b3e6577eaa676ceb00a848f0fd65fe2adc29
arm64: kasan: mte: move GCR_EL1 switch to task switch when KASAN disabled

It is not necessary to write to GCR_EL1 on every kernel entry and
exit when HW tag-based KASAN is disabled because the kernel will not
execute any IRG instructions in that mode. Since accessing GCR_EL1
can be expensive on some microarchitectures, avoid doing so by moving
the access to task switch when HW tag-based KASAN is disabled.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Acked-by: Andrey Konovalov <andreyknvl@gmail.com>
Link: https://linux-review.googlesource.com/id/I78e90d60612a94c24344526f476ac4ff216e10d2
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20210924010655.2886918-1-pcc@google.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/entry.S
arch/arm64/kernel/mte.c
include/linux/kasan.h