Messages in this thread Patch in this message |  | | From | Jia Zhang <> | Subject | [PATCH 1/2] x86/intel: introduce platform_id | Date | Mon, 15 Jan 2018 13:43:22 +0800 |
| |
Platform ID retrieved from MSR_IA32_PLATFORM_ID may be used as a filtration condition in some cases.
Signed-off-by: Jia Zhang <zhang.jia@linux.alibaba.com> --- arch/x86/include/asm/processor.h | 1 + arch/x86/kernel/cpu/intel.c | 7 +++++++ 2 files changed, 8 insertions(+)
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index d3a67fb..c0b4d47 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -133,6 +133,7 @@ struct cpuinfo_x86 { u16 cpu_index; u32 microcode; unsigned initialized : 1; + u8 platform_id; } __randomize_layout; struct cpuid_regs { diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c index b1af220..cee0554 100644 --- a/arch/x86/kernel/cpu/intel.c +++ b/arch/x86/kernel/cpu/intel.c @@ -229,6 +229,13 @@ static void early_init_intel(struct cpuinfo_x86 *c) } check_mpx_erratum(c); + + if ((c->x86 > 6) || (c->x86_model >= 5)) { + u32 val[2]; + + rdmsr(MSR_IA32_PLATFORM_ID, val[0], val[1]); + c->platform_id = 1 << ((val[1] >> 18) & 7); + } } #ifdef CONFIG_X86_32 -- 1.8.3.1
|  |