summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@kernel.org>2017-08-01 07:11:37 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-09-20 08:19:57 +0200
commit3fddeb80034b2be27179cdc4e23167bc78d304d1 (patch)
treed0c4e59ac2bb5638267813bf8337b0d00416e3c2 /fs
parent0caec70692a0f19538ed4ebb816df0d5585c8bd0 (diff)
downloadlinux-stable-3fddeb80034b2be27179cdc4e23167bc78d304d1.tar.gz
linux-stable-3fddeb80034b2be27179cdc4e23167bc78d304d1.tar.bz2
linux-stable-3fddeb80034b2be27179cdc4e23167bc78d304d1.zip
x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs
commit e137a4d8f4dd2e277e355495b6b2cb241a8693c3 upstream. Switching FS and GS is a mess, and the current code is still subtly wrong: it assumes that "Loading a nonzero value into FS sets the index and base", which is false on AMD CPUs if the value being loaded is 1, 2, or 3. (The current code came from commit 3e2b68d752c9 ("x86/asm, sched/x86: Rewrite the FS and GS context switch code"), which made it better but didn't fully fix it.) Rewrite it to be much simpler and more obviously correct. This should fix it fully on AMD CPUs and shouldn't adversely affect performance. Signed-off-by: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Borislav Petkov <bpetkov@suse.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Chang Seok <chang.seok.bae@intel.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions