Re: [PATCH 2/2] arm64: vhe: Verify CPU Exception Levels

From: Suzuki K Poulose
Date: Wed Apr 13 2016 - 07:16:33 EST


On 13/04/16 12:14, Christoffer Dall wrote:
On Tue, Apr 12, 2016 at 03:46:01PM +0100, Suzuki K Poulose wrote:
With a VHE capable CPU, kernel can run at EL2 and is a decided at early
boot. If some of the CPUs didn't start it EL2 or doesn't have VHE, we
could have CPUs running at different exception levels, all in the same
kernel! This patch adds an early check for the secondary CPUs to detect
such situations.

For each non-boot CPU add a sanity check to make sure we don't have
different run levels w.r.t the boot CPU. We save the information on
whether the boot CPU is running in hyp mode or not and ensure the
remaining CPUs match it.

Applies on 4.6-rc3.

+#ifdef CONFIG_ARM64_VHE
+
+extern bool boot_cpu_hyp_mode;
+static inline bool is_boot_cpu_in_hyp_mode(void)
+{
+ return boot_cpu_hyp_mode;
+}

would it make sense to move this to smp.c to avoid exporting
boot_cpu_hyp_mode?

Sure, we can.


Note that boot_cpu_hyp_mode is never set without CONFIG_SMP, but that
shouldn't matter I suppose.

Right. The check will be invoked only by the secondary CPUs. I will
respin it.

Cheers
Suzuki