[PATCH v3 3/3] arm64: paravirt: Enable errata based on implementation CPUs
Cornelia Huck
cohuck at redhat.com
Mon Dec 9 04:49:16 PST 2024
On Mon, Dec 09 2024, Shameer Kolothum <shameerali.kolothum.thodi at huawei.com> wrote:
> Retrieve any migration target implementation CPUs using the hypercall
> and enable associated errata.
>
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi at huawei.com>
> ---
> Note:
>
> One thing I am not sure here is how to handle the hypercall error.
> Do we need to fail the Guest boot or just carry on without any
> target implementation CPU support? At the moment it just carries on.
>
> Thanks,
> Shameer
> ---
> arch/arm64/include/asm/cputype.h | 25 +++++++++++++++++++++++--
> arch/arm64/include/asm/paravirt.h | 3 +++
> arch/arm64/kernel/cpu_errata.c | 20 +++++++++++++++++---
> arch/arm64/kernel/cpufeature.c | 2 ++
> arch/arm64/kernel/image-vars.h | 2 ++
> arch/arm64/kernel/paravirt.c | 31 +++++++++++++++++++++++++++++++
> 6 files changed, 78 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
> index dcf0e1ce892d..9e466f3ae9c6 100644
> --- a/arch/arm64/include/asm/cputype.h
> +++ b/arch/arm64/include/asm/cputype.h
> @@ -265,6 +265,16 @@ struct midr_range {
> #define MIDR_REV(m, v, r) MIDR_RANGE(m, v, r, v, r)
> #define MIDR_ALL_VERSIONS(m) MIDR_RANGE(m, 0, 0, 0xf, 0xf)
>
> +#define MAX_TARGET_IMPL_CPUS 64
> +
> +struct target_impl_cpu {
> + u32 midr;
> + u32 revidr;
> +};
Doesn't this need to be u64 for both (even if the upper bits for
MIDR_EL1 are reserved?)
More information about the linux-arm-kernel
mailing list