RE: [PATCH v3] x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

From: Luck, Tony
Date: Fri May 17 2024 - 14:13:19 EST


>> for (m = match; m->flags & X86_CPU_ID_FLAG_ENTRY_VALID; m++) {
>
> Yeah, makes sense at a first glance.
>
> This'll keep the terminators "{}" unchanged so that we don't have to
> touch all those gazillion places and it'll explicitly state that an
> entry is valid or not.

> But the devil's in the detail, as always...

Yes. One detail is that there are places not using the X86_MATCH macros.

E.g. in arch/x86/crypto/aesni-intel_glue.c there is:

static const struct x86_cpu_id zmm_exclusion_list[] = {
{ .vendor = X86_VENDOR_INTEL, .family = 6, .model = INTEL_FAM6_SKYLAKE_X },
...
};

This one (and likely most/all others) will be fixed by the remaining patches in my new families[1] series.

But I'll need to audit to check that I got them all before changing x86_match_cpu() to
only look at m->flags.

-Tony

[1] I'll work on rebasing the remaining patches in that series. I think all but a couple of trees
that have conflicting changes in linux-next have now been pulled into mainline.