kernel_optimize_test/arch/x86/include/asm
Andy Lutomirski 61f01dd941 x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue
AMD CPUs don't reinitialize the SS descriptor on SYSRET, so SYSRET with
SS == 0 results in an invalid usermode state in which SS is apparently
equal to __USER_DS but causes #SS if used.

Work around the issue by setting SS to __KERNEL_DS __switch_to, thus
ensuring that SYSRET never happens with SS set to NULL.

This was exposed by a recent vDSO cleanup.

Fixes: e7d6eefaaa x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Peter Anvin <hpa@zytor.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-04-26 17:57:38 -07:00
..
crypto
numachip
trace
uv
xen
a.out-core.h
acenv.h
acpi.h
agp.h
alternative-asm.h x86/alternatives: Fix ALTERNATIVE_2 padding generation properly 2015-04-04 15:58:23 +02:00
alternative.h x86/alternatives: Fix ALTERNATIVE_2 padding generation properly 2015-04-04 15:58:23 +02:00
amd_nb.h
apb_timer.h
apic_flat_64.h
apic.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-13 13:16:36 -07:00
apicdef.h
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm.h
atomic64_32.h
atomic64_64.h
atomic.h
barrier.h
bios_ebda.h
bitops.h
boot.h
bootparam_utils.h
bug.h
bugs.h
cache.h
cacheflush.h
calgary.h
calling.h x86/asm/entry: Clear EXTRA_REGS for all executable formats 2015-04-06 09:24:08 +02:00
ce4100.h
checksum_32.h
checksum_64.h
checksum.h
clocksource.h
cmdline.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h
compat.h
context_tracking.h
cpu_device_id.h
cpu.h
cpufeature.h x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue 2015-04-26 17:57:38 -07:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc_defs.h
desc.h
device.h
disabled-features.h
div64.h
dma-mapping.h
dma.h
dmi.h
dwarf2.h
e820.h mm: move memtest under mm 2015-04-14 16:49:06 -07:00
edac.h
efi.h efi: Clean up the efi_call_phys_[prolog|epilog]() save/restore interaction 2015-04-01 12:46:22 +01:00
elf.h mm: fold arch_randomize_brk into ARCH_HAS_ELF_RANDOMIZE 2015-04-14 16:49:05 -07:00
emergency-restart.h
entry_arch.h
espfix.h
exec.h
fb.h
fixmap.h
floppy.h
fpu-internal.h x86/fpu: Rename drop_init_fpu() to fpu_reset_state() 2015-03-23 10:13:59 +01:00
frame.h
ftrace.h
futex.h
gart.h
genapic.h
geode.h
gpio.h
hardirq.h
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/asm/entry/irq: Simplify interrupt dispatch table (IDT) layout 2015-04-08 09:02:13 +02:00
hypertransport.h
hypervisor.h
i387.h
i8259.h
ia32_unistd.h
ia32.h
idle.h
imr.h
inat_types.h
inat.h
init.h
insn.h
inst.h
intel_mid_vrtc.h
intel_scu_ipc.h
intel-mid.h
io_apic.h
io.h
iomap.h
iommu_table.h x86/iommu: Fix header comments regarding standard and _FINISH macros 2015-04-09 10:56:31 +02:00
iommu.h
iosf_mbi.h
ipi.h
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h
irq.h
irqflags.h x86/asm/entry: Drop now unused ENABLE_INTERRUPTS_SYSEXIT32 2015-04-03 10:34:19 +02:00
ist.h
jump_label.h jump_label: Allow asm/jump_label.h to be included in assembly 2015-04-09 09:40:23 +02:00
kasan.h
kbdleds.h
Kbuild
kdebug.h
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kmemcheck.h
kprobes.h
kvm_emulate.h
kvm_guest.h
kvm_host.h kvm: mmu: lazy collapse small sptes into large sptes 2015-04-08 10:47:04 +02:00
kvm_para.h x86: Use bool function return values of true/false not 1/0 2015-03-31 18:05:09 +02:00
lguest_hcall.h
lguest.h lguest: suppress interrupts for single insn, not range. 2015-03-24 11:52:08 +10:30
linkage.h
livepatch.h
local64.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h x86/mce: Define mce_severity function pointer 2015-03-24 12:14:15 +01:00
microcode_amd.h
microcode_intel.h
microcode.h
misc.h
mmconfig.h
mmu_context.h
mmu.h
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h
mpx.h
mshyperv.h
msidef.h
msr.h
mtrr.h
mutex_32.h
mutex_64.h
mutex.h
mwait.h
nmi.h
nops.h
numa_32.h
numa.h
olpc_ofw.h
olpc.h
page_32_types.h
page_32.h
page_64_types.h
page_64.h
page_types.h x86, mm: support huge I/O mapping capability I/F 2015-04-14 16:49:04 -07:00
page.h
paravirt_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
paravirt.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
parport.h
pat.h
pci_64.h
pci_x86.h
pci-direct.h
pci-functions.h
pci.h
percpu.h
perf_event_p4.h
perf_event.h
pgalloc.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable_32_types.h
pgtable_32.h
pgtable_64_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable_64.h
pgtable_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable-2level_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable-2level.h
pgtable-3level_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable-3level.h
pgtable.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
platform_sst_audio.h
pm-trace.h
pmc_atom.h
posix_types.h
preempt.h
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-14 14:37:47 -07:00
prom.h
proto.h
ptrace.h x86/asm/entry: Remove user_mode_ignore_vm86() 2015-03-31 11:45:19 +02:00
pvclock-abi.h
pvclock.h x86: kvm: Revert "remove sched notifier for cross-cpu migrations" 2015-03-23 20:22:48 -03:00
qrwlock.h
realmode.h
reboot_fixups.h
reboot.h
required-features.h
rio.h
rmwcc.h
rtc.h
rwsem.h
seccomp.h x86: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h
segment.h x86/asm/entry/64: Use a define for an invalid segment selector 2015-04-03 15:29:13 +02:00
serial.h
setup_arch.h
setup.h x86/mm/KASLR: Propagate KASLR status to kernel proper 2015-04-03 15:26:15 +02:00
shmparam.h
sigcontext.h
sigframe.h
sighandling.h x86/signal: Remove pax argument from restore_sigcontext 2015-04-06 09:06:39 +02:00
signal.h
simd.h
smap.h
smp.h Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-14 13:36:04 -07:00
sparsemem.h
special_insns.h x86/asm: Add support for the CLWB instruction 2015-04-03 06:56:38 +02:00
spinlock_types.h
spinlock.h
sta2x11.h
stackprotector.h
stacktrace.h
string_32.h
string_64.h
string.h
suspend_32.h
suspend_64.h
suspend.h
svm.h
swiotlb.h
switch_to.h
sync_bitops.h
sys_ia32.h
syscall.h
syscalls.h
sysfb.h
tce.h
thread_info.h Merge branch 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc 2015-04-15 13:53:55 -07:00
time.h
timer.h
timex.h
tlb.h
tlbflush.h
topology.h
trace_clock.h
traps.h
tsc.h
uaccess_32.h
uaccess_64.h x86: clean up/fix 'copy_in_user()' tail zeroing 2015-04-08 14:28:45 -07:00
uaccess.h
unaligned.h
unistd.h
uprobes.h
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmx.h
vsyscall.h
vvar.h
word-at-a-time.h
x2apic.h
x86_init.h
xcr.h
xor_32.h
xor_64.h
xor_avx.h
xor.h
xsave.h