diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-13 20:20:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-13 20:20:04 -0400 |
commit | 7453f33b2e07fc2835e24cda0893de83c78d8d76 (patch) | |
tree | 02d82193515fcc94cf39e284fd325c4491913331 /arch/x86/kernel/cpu | |
parent | fd1cf90580289f83f9c972bb367a74d846d281c4 (diff) | |
parent | d0f2dd186133a0241a2ccefb188a0e49e8187859 (diff) |
Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86/xsave changes from Peter Anvin:
"This is a patchset to support the XSAVES instruction required to
support context switch of supervisor-only features in upcoming
silicon.
This patchset missed the 3.16 merge window, which is why it is based
on 3.15-rc7"
* 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, xsave: Add forgotten inline annotation
x86/xsaves: Clean up code in xstate offsets computation in xsave area
x86/xsave: Make it clear that the XSAVE macros use (%edi)/(%rdi)
Define kernel API to get address of each state in xsave area
x86/xsaves: Enable xsaves/xrstors
x86/xsaves: Call booting time xsaves and xrstors in setup_init_fpu_buf
x86/xsaves: Save xstate to task's xsave area in __save_fpu during booting time
x86/xsaves: Add xsaves and xrstors support for booting time
x86/xsaves: Clear reserved bits in xsave header
x86/xsaves: Use xsave/xrstor for saving and restoring user space context
x86/xsaves: Use xsaves/xrstors for context switch
x86/xsaves: Use xsaves/xrstors to save and restore xsave area
x86/xsaves: Define a macro for handling xsave/xrstor instruction fault
x86/xsaves: Define macros for xsave instructions
x86/xsaves: Change compacted format xsave area header
x86/alternative: Add alternative_input_2 to support alternative with two features and input
x86/xsaves: Add a kernel parameter noxsaves to disable xsaves/xrstors
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 333fd5209336..e4ab2b42bd6f 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
@@ -148,6 +148,7 @@ static int __init x86_xsave_setup(char *s) | |||
148 | { | 148 | { |
149 | setup_clear_cpu_cap(X86_FEATURE_XSAVE); | 149 | setup_clear_cpu_cap(X86_FEATURE_XSAVE); |
150 | setup_clear_cpu_cap(X86_FEATURE_XSAVEOPT); | 150 | setup_clear_cpu_cap(X86_FEATURE_XSAVEOPT); |
151 | setup_clear_cpu_cap(X86_FEATURE_XSAVES); | ||
151 | setup_clear_cpu_cap(X86_FEATURE_AVX); | 152 | setup_clear_cpu_cap(X86_FEATURE_AVX); |
152 | setup_clear_cpu_cap(X86_FEATURE_AVX2); | 153 | setup_clear_cpu_cap(X86_FEATURE_AVX2); |
153 | return 1; | 154 | return 1; |
@@ -161,6 +162,13 @@ static int __init x86_xsaveopt_setup(char *s) | |||
161 | } | 162 | } |
162 | __setup("noxsaveopt", x86_xsaveopt_setup); | 163 | __setup("noxsaveopt", x86_xsaveopt_setup); |
163 | 164 | ||
165 | static int __init x86_xsaves_setup(char *s) | ||
166 | { | ||
167 | setup_clear_cpu_cap(X86_FEATURE_XSAVES); | ||
168 | return 1; | ||
169 | } | ||
170 | __setup("noxsaves", x86_xsaves_setup); | ||
171 | |||
164 | #ifdef CONFIG_X86_32 | 172 | #ifdef CONFIG_X86_32 |
165 | static int cachesize_override = -1; | 173 | static int cachesize_override = -1; |
166 | static int disable_x86_serial_nr = 1; | 174 | static int disable_x86_serial_nr = 1; |