public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: x86@kernel.org
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>
Subject: [PATCH v10 3/5] x86/fpu: Parse clearcpuid= as early XSAVE argument
Date: Fri, 13 Oct 2017 14:56:43 -0700	[thread overview]
Message-ID: <20171013215645.23166-4-andi@firstfloor.org> (raw)
In-Reply-To: <20171013215645.23166-1-andi@firstfloor.org>

From: Andi Kleen <ak@linux.intel.com>

With a followon patch we want to make clearcpuid affect the XSAVE
configuration. But xsave is currently initialized before arguments
are parsed. Move the clearcpuid= parsing into the special
early xsave argument parsing code.

Since clearcpuid= contains a = we need to keep the old __setup
around as a dummy, otherwise it would end up as a environment
variable in init's environment.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 arch/x86/kernel/cpu/common.c | 16 +++++++---------
 arch/x86/kernel/fpu/init.c   | 11 +++++++++++
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index c9176bae7fd8..03bb004bb15e 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1301,18 +1301,16 @@ void print_cpu_info(struct cpuinfo_x86 *c)
 		pr_cont(")\n");
 }
 
-static __init int setup_disablecpuid(char *arg)
+/*
+ * clearcpuid= was already parsed in fpu__init_parse_early_param.
+ * But we need to keep a dummy __setup around otherwise it would
+ * show up as an environment variable for init.
+ */
+static __init int setup_clearcpuid(char *arg)
 {
-	int bit;
-
-	if (get_option(&arg, &bit) && bit >= 0 && bit < NCAPINTS * 32)
-		setup_clear_cpu_cap(bit);
-	else
-		return 0;
-
 	return 1;
 }
-__setup("clearcpuid=", setup_disablecpuid);
+__setup("clearcpuid=", setup_clearcpuid);
 
 #ifdef CONFIG_X86_64
 DEFINE_PER_CPU_FIRST(union irq_stack_union,
diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
index 7affb7e3d9a5..6abd83572b01 100644
--- a/arch/x86/kernel/fpu/init.c
+++ b/arch/x86/kernel/fpu/init.c
@@ -249,6 +249,10 @@ static void __init fpu__init_system_ctx_switch(void)
  */
 static void __init fpu__init_parse_early_param(void)
 {
+	char arg[32];
+	char *argptr = arg;
+	int bit;
+
 	if (cmdline_find_option_bool(boot_command_line, "no387"))
 		setup_clear_cpu_cap(X86_FEATURE_FPU);
 
@@ -266,6 +270,13 @@ static void __init fpu__init_parse_early_param(void)
 
 	if (cmdline_find_option_bool(boot_command_line, "noxsaves"))
 		setup_clear_cpu_cap(X86_FEATURE_XSAVES);
+
+	if (cmdline_find_option(boot_command_line, "clearcpuid", arg,
+				sizeof(arg)) &&
+	    get_option(&argptr, &bit) &&
+	    bit >= 0 &&
+	    bit < NCAPINTS * 32)
+		setup_clear_cpu_cap(bit);
 }
 
 /*
-- 
2.13.6

  parent reply	other threads:[~2017-10-13 21:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-13 21:56 Support generic disabling of all XSAVE features Andi Kleen
2017-10-13 21:56 ` [PATCH v10 1/5] bitops: Add clear/set_bit32 to linux/bitops.h Andi Kleen
2017-10-17 15:14   ` Thomas Gleixner
2017-10-17 16:21   ` [tip:x86/fpu] bitops: Add clear/set_bit32() " tip-bot for Andi Kleen
2017-11-05 15:53     ` Heiko Carstens
2017-11-05 17:40       ` Ingo Molnar
2017-11-05 18:01       ` Linus Torvalds
2017-10-13 21:56 ` [PATCH v10 2/5] x86/cpuid: Add generic table for cpuid dependencies Andi Kleen
2017-10-17 16:22   ` [tip:x86/fpu] x86/cpuid: Add generic table for CPUID dependencies tip-bot for Andi Kleen
2017-10-13 21:56 ` Andi Kleen [this message]
2017-10-17 15:15   ` [PATCH v10 3/5] x86/fpu: Parse clearcpuid= as early XSAVE argument Thomas Gleixner
2017-10-17 15:19     ` Ingo Molnar
2017-10-17 16:22   ` [tip:x86/fpu] " tip-bot for Andi Kleen
2017-10-13 21:56 ` [PATCH v10 4/5] x86/fpu: Make XSAVE check the base CPUID features before enabling Andi Kleen
2017-10-17 16:23   ` [tip:x86/fpu] " tip-bot for Andi Kleen
2017-10-13 21:56 ` [PATCH v10 5/5] x86/fpu: Remove the explicit clearing of XSAVE dependend features Andi Kleen
2017-10-17 16:23   ` [tip:x86/fpu] x86/fpu: Remove the explicit clearing of XSAVE dependent features tip-bot for Andi Kleen

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=20171013215645.23166-4-andi@firstfloor.org \
    --to=andi@firstfloor.org \
    --cc=ak@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=x86@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox