[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1515995003-113069-2-git-send-email-zhang.jia@linux.alibaba.com>
Date: Mon, 15 Jan 2018 13:43:22 +0800
From: Jia Zhang <zhang.jia@...ux.alibaba.com>
To: tony.luck@...el.com, bp@...en8.de
Cc: mingo@...hat.com, hpa@...or.com, tglx@...utronix.de,
x86@...nel.org, linux-kernel@...r.kernel.org,
Jia Zhang <zhang.jia@...ux.alibaba.com>
Subject: [PATCH 1/2] x86/intel: introduce platform_id
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@...ux.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
Powered by blists - more mailing lists