x86/cpu: Add consistent CPU match macros
authorThomas Gleixner <tglx@linutronix.de>
Fri, 20 Mar 2020 13:13:47 +0000 (14:13 +0100)
committerBorislav Petkov <bp@suse.de>
Tue, 24 Mar 2020 20:17:50 +0000 (21:17 +0100)
commit20d437447c0089cda46c683db219d3b4e2cde40e
tree926a925b7ecc2ca38c08e93a0816243bc3e4b694
parentba5bade4cc0d2013cdf5634dae554693c968a090
x86/cpu: Add consistent CPU match macros

Finding all places which build x86_cpu_id match tables is tedious and the
logic is hidden in lots of differently named macro wrappers.

Most of these initializer macros use plain C89 initializers which rely on
the ordering of the struct members. So new members could only be added at
the end of the struct, but that's ugly as hell and C99 initializers are
really the right thing to use.

Provide a set of macros which:

  - Have a proper naming scheme, starting with X86_MATCH_

  - Use C99 initializers

The set of provided macros are all subsets of the base macro

    X86_MATCH_VENDOR_FAM_MODEL_FEATURE()

which allows to supply all possible selection criteria:

      vendor, family, model, feature

The other macros shorten this to avoid typing all arguments when they are
not needed and would require one of the _ANY constants. They have been
created due to the requirements of the existing usage sites.

Also add a few model constants for Centaur CPUs and QUARK.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lkml.kernel.org/r/20200320131508.826011988@linutronix.de
arch/x86/include/asm/cpu_device_id.h
arch/x86/include/asm/intel-family.h
arch/x86/kernel/cpu/match.c