Re: [PATCH 5.16 29/37] arm64: entry: Add vectors that have the bhb mitigation sequences

Pavel Machek
2022-03-10T23:27:39Z

[-- Attachment #1: Type: text/plain, Size: 1692 bytes --]

Hi!

> From: James Morse <james.morse@arm.com>
>
> commit ba2689234be92024e5635d30fe744f4853ad97db upstream.
>
> Some CPUs affected by Spectre-BHB need a sequence of branches, or a
> firmware call to be run before any indirect branch. This needs to go
> in the vectors. No CPU needs both.
>
> While this can be patched in, it would run on all CPUs as there is a
> single set of vectors. If only one part of a big/little combination is
> affected, the unaffected CPUs have to run the mitigation too.

This adds build error. Same problem is in 5.10.

> --- /dev/null
> +++ b/arch/arm64/include/asm/vectors.h
> @@ -0,0 +1,34 @@
...
> +/*
> + * Note: the order of this enum corresponds to two arrays in entry.S:
> + * tramp_vecs and __bp_harden_el1_vectors. By default the canonical
> + * 'full fat' vectors are used directly.
> + */
> +enum arm64_bp_harden_el1_vectors {
> +#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
> + /*
> + * Perform the BHB loop mitigation, before branching to the canonical
> + * vectors.
> + */
> + EL1_VECTOR_BHB_LOOP,
> +
> + /*
> + * Make the SMC call for firmware mitigation, before branching to the
> + * canonical vectors.
> + */
> + EL1_VECTOR_BHB_FW,
> +#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
> +
> + /*
> + * Remap the kernel before branching to the canonical vectors.
> + */
> + EL1_VECTOR_KPTI,
> ++};
> +

Note "++". Following patch fixes this up, but it is still a trap for
people trying to bisect.

Best regards,
Pavel

--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]