]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: use const cap for system_uses_ttbr0_pan()
authorMark Rutland <mark.rutland@arm.com>
Fri, 10 Mar 2017 17:44:18 +0000 (17:44 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 10 Mar 2017 17:45:16 +0000 (17:45 +0000)
commit30abef0716684a9cf44166aac42b8a6e6403b5dd
tree634b7aaf1a7376f476fba53f963113d828d94673
parent8d5ed4f545905d57d3ac7957527df7a8cf6f9114
arm64: use const cap for system_uses_ttbr0_pan()

Since commit 4d238d569db6cc9f ("arm64: Introduce
uaccess_{disable,enable} functionality based on TTBR0_EL1"),
system_uses_ttbr0_pan() has used cpus_have_cap() to determine whether
PAN is present.

Since commit 36b5e59673a8218a ("arm64: Add hypervisor safe helper for
checking constant capabilities"), which was introduced around the same
time, cpus_have_cap() doesn't try to use a static key, and must always
perform a load, test, and consitional branch (likely a tbnz for the
latter two).

Elsewhere, we moved to using cpus_have_const_cap(), which can use a
static key (i.e. a non-conditional branch), which is patched at runtime
when the feature is detected.

This patch makes system_uses_ttbr0_pan() use cpus_have_const_cap(). The
static key is likely a win for hot-paths like the uacccess primitives,
and this makes our usage consistent regardless.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/cpufeature.h