Re: [PATCH v2 2/3] efi: arm64: Wire up BTI annotation in memory attributes table
From: Mark Rutland <mark.rutland@arm.com>
Date: 2023-02-09 15:17:15
Also in:
linux-efi
On Thu, Feb 09, 2023 at 03:21:55PM +0100, Ard Biesheuvel wrote:
On Wed, 8 Feb 2023 at 15:36, Ard Biesheuvel [off-list ref] wrote:quoted
On Wed, 8 Feb 2023 at 15:25, Mark Rutland [off-list ref] wrote:quoted
I believe that there's no issue with mismatched CPUs, but there *might* might be a different issue with the ordering of feature detection and usage of the cap: * If CONFIG_ARM64_BTI_KERNEL=y, then the ARM64_BTI cap is detected as a strict boot cpu feature, and secondaries without it will be rejected. * If CONFIG_ARM64_BTI_KERNEL=n then the ARM64_BTI cap is detected as a system feature, and so we only set the cap bit after bringing all secondary CPUs online, and only when *all* CPUs support it. The happens under setup_cpu_features(), called from smp_cpus_done(). So there's no issue with mismatch, but if system_supports_bti is called before smp_cpus_done() on a CONFIG_ARM64_BTI_KERNEL kernel it will return false. When do we set up the EFI mappings relative to that?Currently it is an early initcall so before SMP, but that is not really necessary - the EFI table that carries this annotation is an overlay that could easily be applied later. OTOH, what is the penalty for setting the GP attribute and using the translation table on a core that does not implement BTI?I'll merge this with the CONFIG_ARM64_BTI_KERNEL check re-added, if nobody minds?
That make sense to me; with the CONFIG_ARM64_BTI_KERNEL check: Acked-by: Mark Rutland <mark.rutland@arm.com> Mark. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel