aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2022-06-09 13:12:21 +0100
committerMarc Zyngier <maz@kernel.org>2022-06-09 13:24:02 +0100
commit112f3bab41113dc53b4f35e9034b2208245bc002 (patch)
tree7bbdd3565698eed5fe07bd5fee2a7ea0975d4f96 /arch/arm64
parentKVM: arm64: Ignore 'kvm-arm.mode=protected' when using VHE (diff)
downloadlinux-dev-112f3bab41113dc53b4f35e9034b2208245bc002.tar.xz
linux-dev-112f3bab41113dc53b4f35e9034b2208245bc002.zip
KVM: arm64: Extend comment in has_vhe()
has_vhe() expands to a compile-time constant when evaluated from the VHE or nVHE code, alternatively checking a static key when called from elsewhere in the kernel. On face value, this looks like a case of premature optimization, but in fact this allows symbol references on VHE-specific code paths to be dropped from the nVHE object. Expand the comment in has_vhe() to make this clearer, hopefully discouraging anybody from simplifying the code. Cc: David Brazdil <dbrazdil@google.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220609121223.2551-5-will@kernel.org
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/include/asm/virt.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/virt.h b/arch/arm64/include/asm/virt.h
index 3c8af033a997..0e80db4327b6 100644
--- a/arch/arm64/include/asm/virt.h
+++ b/arch/arm64/include/asm/virt.h
@@ -113,6 +113,9 @@ static __always_inline bool has_vhe(void)
/*
* Code only run in VHE/NVHE hyp context can assume VHE is present or
* absent. Otherwise fall back to caps.
+ * This allows the compiler to discard VHE-specific code from the
+ * nVHE object, reducing the number of external symbol references
+ * needed to link.
*/
if (is_vhe_hyp_code())
return true;