lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ