diff options
Diffstat (limited to 'arch/x86/kernel/fpu/init.c')
-rw-r--r-- | arch/x86/kernel/fpu/init.c | 11 |
1 files changed, 11 insertions, 0 deletions
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) | |||
249 | */ | 249 | */ |
250 | static void __init fpu__init_parse_early_param(void) | 250 | static void __init fpu__init_parse_early_param(void) |
251 | { | 251 | { |
252 | char arg[32]; | ||
253 | char *argptr = arg; | ||
254 | int bit; | ||
255 | |||
252 | if (cmdline_find_option_bool(boot_command_line, "no387")) | 256 | if (cmdline_find_option_bool(boot_command_line, "no387")) |
253 | setup_clear_cpu_cap(X86_FEATURE_FPU); | 257 | setup_clear_cpu_cap(X86_FEATURE_FPU); |
254 | 258 | ||
@@ -266,6 +270,13 @@ static void __init fpu__init_parse_early_param(void) | |||
266 | 270 | ||
267 | if (cmdline_find_option_bool(boot_command_line, "noxsaves")) | 271 | if (cmdline_find_option_bool(boot_command_line, "noxsaves")) |
268 | setup_clear_cpu_cap(X86_FEATURE_XSAVES); | 272 | setup_clear_cpu_cap(X86_FEATURE_XSAVES); |
273 | |||
274 | if (cmdline_find_option(boot_command_line, "clearcpuid", arg, | ||
275 | sizeof(arg)) && | ||
276 | get_option(&argptr, &bit) && | ||
277 | bit >= 0 && | ||
278 | bit < NCAPINTS * 32) | ||
279 | setup_clear_cpu_cap(bit); | ||
269 | } | 280 | } |
270 | 281 | ||
271 | /* | 282 | /* |