All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Borislav Petkov <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@kernel.org, tedheadster@gmail.com, oleg@redhat.com,
	tglx@linutronix.de, peterz@infradead.org,
	gnomes@lxorguk.ukuu.org.uk, linux-kernel@vger.kernel.org,
	riel@redhat.com, torvalds@linux-foundation.org, hpa@zytor.com,
	fenghua.yu@intel.com, brgerst@gmail.com, bp@suse.de,
	yu-cheng.yu@intel.com, dave.hansen@linux.intel.com, bp@alien8.de,
	luto@kernel.org
Subject: [tip:x86/fpu] x86/cpu: Add X86_FEATURE_CPUID
Date: Wed, 25 Jan 2017 03:40:15 -0800	[thread overview]
Message-ID: <tip-78d1b296843a719935277b0d24d1358416ed0204@git.kernel.org> (raw)
In-Reply-To: <dcb355adae3ab812c79397056a61c212f1a0c7cc.1484705016.git.luto@kernel.org>

Commit-ID:  78d1b296843a719935277b0d24d1358416ed0204
Gitweb:     http://git.kernel.org/tip/78d1b296843a719935277b0d24d1358416ed0204
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Wed, 18 Jan 2017 11:15:37 -0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 25 Jan 2017 10:12:39 +0100

x86/cpu: Add X86_FEATURE_CPUID

Add a synthetic CPUID flag denoting whether the CPU sports the CPUID
instruction or not. This will come useful later when accomodating
CPUID-less CPUs.

Signed-off-by: Borislav Petkov <bp@suse.de>
[ Slightly prettified. ]
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Reviewed-by: Borislav Petkov <bp@suse.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matthew Whitehead <tedheadster@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
Link: http://lkml.kernel.org/r/dcb355adae3ab812c79397056a61c212f1a0c7cc.1484705016.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/include/asm/cpufeatures.h | 2 +-
 arch/x86/kernel/cpu/common.c       | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index eafee31..a0f4ff2 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -100,7 +100,7 @@
 #define X86_FEATURE_XTOPOLOGY	( 3*32+22) /* cpu topology enum extensions */
 #define X86_FEATURE_TSC_RELIABLE ( 3*32+23) /* TSC is known to be reliable */
 #define X86_FEATURE_NONSTOP_TSC	( 3*32+24) /* TSC does not stop in C states */
-/* free, was #define X86_FEATURE_CLFLUSH_MONITOR ( 3*32+25) * "" clflush reqd with monitor */
+#define X86_FEATURE_CPUID	( 3*32+25) /* CPU has CPUID instruction itself */
 #define X86_FEATURE_EXTD_APICID	( 3*32+26) /* has extended APICID (8 bits) */
 #define X86_FEATURE_AMD_DCM     ( 3*32+27) /* multi-node processor */
 #define X86_FEATURE_APERFMPERF	( 3*32+28) /* APERFMPERF */
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 9bab7a8..c3328d0 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -801,14 +801,12 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
 	memset(&c->x86_capability, 0, sizeof c->x86_capability);
 	c->extended_cpuid_level = 0;
 
-	if (!have_cpuid_p())
-		identify_cpu_without_cpuid(c);
-
 	/* cyrix could have cpuid enabled via c_identify()*/
 	if (have_cpuid_p()) {
 		cpu_detect(c);
 		get_cpu_vendor(c);
 		get_cpu_cap(c);
+		setup_force_cpu_cap(X86_FEATURE_CPUID);
 
 		if (this_cpu->c_early_init)
 			this_cpu->c_early_init(c);
@@ -818,6 +816,9 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
 
 		if (this_cpu->c_bsp_init)
 			this_cpu->c_bsp_init(c);
+	} else {
+		identify_cpu_without_cpuid(c);
+		setup_clear_cpu_cap(X86_FEATURE_CPUID);
 	}
 
 	setup_force_cpu_cap(X86_FEATURE_ALWAYS);

  reply	other threads:[~2017-01-25 11:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-18 19:15 [PATCH v2 0/6] CPUID and FPU fixes Andy Lutomirski
2017-01-18 19:15 ` [PATCH v2 1/6] x86/cpu: Add X86_FEATURE_CPUID Andy Lutomirski
2017-01-25 11:40   ` tip-bot for Borislav Petkov [this message]
2017-01-18 19:15 ` [PATCH v2 2/6] x86/cpu: Factor out application of forced cpu caps Andy Lutomirski
2017-01-25 11:40   ` [tip:x86/fpu] x86/cpu: Factor out application of forced CPU caps tip-bot for Andy Lutomirski
2017-01-18 19:15 ` [PATCH v2 3/6] x86/cpu: Re-apply forced caps every time cpu caps are re-read Andy Lutomirski
2017-01-19 11:23   ` Borislav Petkov
2017-01-25 11:41   ` [tip:x86/fpu] x86/cpu: Re-apply forced caps every time CPU " tip-bot for Andy Lutomirski
2017-01-18 19:15 ` [PATCH v2 4/6] x86/fpu: Fix "x86/fpu: Legacy x87 FPU detected" message Andy Lutomirski
2017-01-25 11:42   ` [tip:x86/fpu] " tip-bot for Andy Lutomirski
2017-01-18 19:15 ` [PATCH v2 5/6] x86/fpu: Fix CPUID-less FPU detection Andy Lutomirski
2017-01-19 11:23   ` Borislav Petkov
2017-01-25 11:42   ` [tip:x86/fpu] " tip-bot for Andy Lutomirski
2017-01-18 19:15 ` [PATCH v2 6/6] x86/fpu: Fix the "Giving up, no FPU found" test Andy Lutomirski
2017-01-25 11:43   ` [tip:x86/fpu] " tip-bot for Andy Lutomirski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-78d1b296843a719935277b0d24d1358416ed0204@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=bp@alien8.de \
    --cc=bp@suse.de \
    --cc=brgerst@gmail.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=fenghua.yu@intel.com \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=tedheadster@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=yu-cheng.yu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.