Commit 2e6f549f authored by Kees Cook's avatar Kees Cook Committed by Will Deacon
Browse files

arm64: cpufeature: Relocate PAN emulation report



The PAN emulation notification was only happening for non-boot CPUs
if CPU capabilities had already been configured. This seems to be the
wrong place, as it's system-wide and isn't attached to capabilities,
so its reporting didn't normally happen. Instead, report it once from
the boot CPU.

Before (missing PAN emulation report):

 SMP: Total of 4 processors activated.
 CPU features: detected feature: 32-bit EL0 Support
 CPU features: detected feature: Kernel page table isolation (KPTI)
 CPU: All CPU(s) started at EL2

After:

 SMP: Total of 4 processors activated.
 CPU features: detected feature: 32-bit EL0 Support
 CPU features: detected feature: Kernel page table isolation (KPTI)
 CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
 CPU: All CPU(s) started at EL2

Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 6141ac1c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1335,9 +1335,6 @@ static void verify_local_cpu_capabilities(void)

	if (system_supports_sve())
		verify_sve_features();

	if (system_uses_ttbr0_pan())
		pr_info("Emulating Privileged Access Never (PAN) using TTBR0_EL1 switching\n");
}

void check_local_cpu_capabilities(void)
@@ -1396,6 +1393,9 @@ void __init setup_cpu_features(void)
	if (system_supports_32bit_el0())
		setup_elf_hwcaps(compat_elf_hwcaps);

	if (system_uses_ttbr0_pan())
		pr_info("emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching\n");

	sve_setup();

	/* Advertise that we have computed the system capabilities */