kernel-ark/arch/x86/include/asm
Ingo Molnar 3f0116c323 compiler/gcc4: Add quirk for 'asm goto' miscompilation bug
Fengguang Wu, Oleg Nesterov and Peter Zijlstra tracked down
a kernel crash to a GCC bug: GCC miscompiles certain 'asm goto'
constructs, as outlined here:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670

Implement a workaround suggested by Jakub Jelinek.

Reported-and-tested-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Oleg Nesterov <oleg@redhat.com>
Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Suggested-by: Jakub Jelinek <jakub@redhat.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-10-11 07:39:14 +02:00
..
crypto Revert "crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher" 2013-06-21 14:44:29 +08:00
numachip
trace x86, trace: Add irq vector tracepoints 2013-06-20 22:25:34 -07:00
uv x86, trace: Add irq vector tracepoints 2013-06-20 22:25:34 -07:00
visws
xen Bug-fixes: 2013-09-25 15:50:53 -07:00
a.out-core.h
acpi.h Merge branch 'x86/mce' into x86/ras 2013-08-12 17:54:05 +02:00
agp.h
alternative-asm.h
alternative.h kprobes/x86: Call out into INT3 handler directly instead of using notifier 2013-07-23 10:12:57 +02:00
amd_nb.h
apb_timer.h
apic_flat_64.h
apic.h x86/ioapic/kcrash: Prevent crash_kexec() from deadlocking on ioapic_lock 2013-08-20 09:26:33 +02:00
apicdef.h
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm.h x86, asm: Extend definitions of _ASM_* with a raw format 2013-08-29 13:26:32 -07:00
atomic64_32.h
atomic64_64.h
atomic.h
barrier.h
bios_ebda.h
bitops.h x86, bitops: Change bitops to be native operand size 2013-07-16 15:24:04 -07:00
boot.h
bootparam_utils.h x86: Don't clear olpc_ofw_header when sentinel is detected 2013-08-09 15:29:48 -07:00
bug.h dump_stack: unify debug information printed by show_regs() 2013-04-30 17:04:02 -07:00
bugs.h
cache.h
cacheflush.h
calgary.h
calling.h
ce4100.h
checksum_32.h x86, smap: Handle csum_partial_copy_*_user() 2013-09-01 14:09:48 -07:00
checksum_64.h x86, asmlinkage: Make 64bit checksum functions visible 2013-08-06 14:20:59 -07:00
checksum.h
clocksource.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h x86 cmpxchg.h: fix wrong comment 2013-04-25 10:39:04 +02:00
compat.h
context_tracking.h context_tracking: Move exception handling to generic code 2013-03-07 17:09:25 +01:00
cpu_device_id.h
cpu.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
cpufeature.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
cpumask.h
cputime.h
current.h
debugreg.h
delay.h
desc_defs.h
desc.h trace,x86: Do not call local_irq_save() in load_current_idt() 2013-06-22 13:16:19 -04:00
device.h
div64.h
dma-contiguous.h drivers: dma-contiguous: clean source code and prepare for device tree 2013-08-27 09:18:29 +02:00
dma-mapping.h
dma.h
dmi.h
dwarf2.h
e820.h x86: avoid remapping data in parse_setup_data() 2013-08-13 23:29:19 -07:00
edac.h
efi.h Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-02 16:25:50 -07:00
elf.h
emergency-restart.h reboot: move arch/x86 reboot= handling to generic kernel 2013-07-09 10:33:29 -07:00
entry_arch.h x86, trace: Add irq vector tracepoints 2013-06-20 22:25:34 -07:00
exec.h
fb.h
fixmap.h ix86: Don't waste fixmap entries 2013-05-31 13:08:18 +02:00
floppy.h
fpu-internal.h x86, fpu: Use static_cpu_has_safe before alternatives 2013-06-20 17:38:22 -07:00
frame.h
ftrace.h
futex.h
gart.h
genapic.h
geode.h
gpio.h
hardirq.h KVM: VMX: Register a new IPI for posted interrupt 2013-04-16 16:32:39 -03:00
highmem.h
hpet.h
hugetlb.h mm/hugetlb: add more arch-defined huge_pte functions 2013-04-29 15:54:33 -07:00
hw_breakpoint.h
hw_irq.h x86, asmlinkage: Make all interrupt handlers asmlinkage / __visible 2013-08-06 14:18:23 -07:00
hypertransport.h
hypervisor.h x86: Correctly detect hypervisor 2013-08-05 06:35:33 -07:00
i387.h
i8259.h
ia32_unistd.h
ia32.h
idle.h
inat_types.h
inat.h
init.h
insn.h
inst.h x86, crc32-pclmul: Fix build with older binutils 2013-05-30 16:36:23 -07:00
intel_scu_ipc.h
io_apic.h
io.h Add arch_phys_wc_{add, del} to manipulate WC MTRRs if needed 2013-05-31 13:02:52 +10:00
iomap.h
iommu_table.h
iommu.h
ipi.h
irq_regs.h
irq_remapping.h iommu: Fix compile warnings with forward declarations 2013-04-19 20:34:55 +02:00
irq_vectors.h KVM: VMX: Register a new IPI for posted interrupt 2013-04-16 16:32:39 -03:00
irq.h x86, asmlinkage: Make all interrupt handlers asmlinkage / __visible 2013-08-06 14:18:23 -07:00
irqflags.h
ist.h
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
kbdleds.h
Kbuild
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kmemcheck.h
kprobes.h x86, asmlinkage: Make kprobes code visible and fix assembler code 2013-08-06 14:19:48 -07:00
kvm_emulate.h
kvm_guest.h
kvm_host.h kvm hypervisor : Add a hypercall to KVM hypervisor to support pv-ticketlocks 2013-08-26 12:47:09 +03:00
kvm_para.h Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:55:10 -07:00
lguest_hcall.h
lguest.h lguest: map Switcher below fixmap. 2013-04-22 15:45:03 +09:30
linkage.h
local64.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h x86: Increase precision of x86_platform.get/set_wallclock() 2013-05-28 14:00:59 -07:00
mce.h Bit 12 may or may not be set in MCi_STATUS.MCACOD when 2013-08-12 19:51:43 +02:00
microcode_amd.h x86, microcode, AMD: Fix early microcode loading 2013-08-12 18:32:45 +02:00
microcode_intel.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
microcode.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
mmconfig.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
mmu_context.h sched/x86: Optimize switch_mm() for multi-threaded workloads 2013-08-01 09:10:26 +02:00
mmu.h
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
mrst-vrtc.h x86: Fix vrtc_get_time/set_mmss to use new timespec interface 2013-05-29 12:57:35 -07:00
mrst.h
mshyperv.h x86, trace: Add irq vector tracepoints 2013-06-20 22:25:34 -07:00
msidef.h
msr.h x86, msr: Unify variable names 2013-04-02 16:03:32 -07:00
mtrr.h Add arch_phys_wc_{add, del} to manipulate WC MTRRs if needed 2013-05-31 13:02:52 +10:00
mutex_32.h arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not 2013-06-26 12:10:55 +02:00
mutex_64.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
mutex.h
mwait.h
nmi.h x86: Fix trigger_all_cpu_backtrace() implementation 2013-06-20 14:00:21 +02:00
nops.h
numa_32.h
numa.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
numaq.h
olpc_ofw.h
olpc.h
page_32_types.h x86, relocs: Move ELF relocation handling to C 2013-08-07 21:00:04 -07:00
page_32.h
page_64_types.h x86, relocs: Move ELF relocation handling to C 2013-08-07 21:00:04 -07:00
page_64.h
page_types.h x86, relocs: Move ELF relocation handling to C 2013-08-07 21:00:04 -07:00
page.h
paravirt_types.h Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:55:10 -07:00
paravirt.h x86, ticketlock: Add slowpath logic 2013-08-09 07:54:00 -07:00
parport.h
pat.h
pci_64.h
pci_x86.h PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
pci-direct.h
pci-functions.h
pci.h PCI: use weak functions for MSI arch-specific functions 2013-08-12 15:26:39 +00:00
percpu.h
perf_event_p4.h perf/x86/intel/P4: Robistify P4 PMU types 2013-04-26 09:31:41 +02:00
perf_event.h perf/x86/intel: Add simple Haswell PMU support 2013-06-19 14:43:33 +02:00
pgalloc.h
pgtable_32_types.h
pgtable_32.h
pgtable_64_types.h
pgtable_64.h
pgtable_types.h mm: make sure _PAGE_SWP_SOFT_DIRTY bit is not set on present pte 2013-09-11 15:58:06 -07:00
pgtable-2level_types.h
pgtable-2level.h mm: save soft-dirty bits on file pages 2013-08-13 17:57:48 -07:00
pgtable-3level_types.h
pgtable-3level.h mm: save soft-dirty bits on file pages 2013-08-13 17:57:48 -07:00
pgtable.h mm: make sure _PAGE_SWP_SOFT_DIRTY bit is not set on present pte 2013-09-11 15:58:06 -07:00
posix_types.h
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:05:13 -07:00
prom.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
proto.h
ptrace.h
pvclock-abi.h
pvclock.h remove sched notifier for cross-cpu migrations 2013-07-18 12:29:30 +02:00
realmode.h
reboot_fixups.h
reboot.h
required-features.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h x86 rwsem: avoid taking slow path when stealing write lock 2013-05-07 07:20:17 -07:00
scatterlist.h
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h
segment.h
serial.h
setup_arch.h
setup.h x86, asmlinkage: Make _*_start_kernel visible 2013-08-06 14:18:26 -07:00
shmparam.h
sigcontext.h
sigframe.h
sighandling.h x86/signals: Propagate RF EFLAGS bit through the signal restore call 2013-05-28 08:46:50 +02:00
signal.h
smap.h
smp.h x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
smpboot_hooks.h
sparsemem.h
special_insns.h x86, asmlinkage: Make several variables used from assembler/linker script visible 2013-08-06 14:20:13 -07:00
spinlock_types.h x86, ticketlock: Add slowpath logic 2013-08-09 07:54:00 -07:00
spinlock.h Linux 3.11-rc7 2013-09-09 12:05:37 -04:00
sta2x11.h
stackprotector.h
stacktrace.h
string_32.h
string_64.h
string.h
suspend_32.h x86, gdt, hibernate: Store/load GDT for hibernate path. 2013-05-02 11:27:35 -07:00
suspend_64.h x86, gdt, hibernate: Store/load GDT for hibernate path. 2013-05-02 11:27:35 -07:00
suspend.h
svm.h
swiotlb.h
switch_to.h x86, asmlinkage: Make 32bit/64bit __switch_to visible 2013-08-06 14:18:30 -07:00
sync_bitops.h x86, bitops: Change bitops to be native operand size 2013-07-16 15:24:04 -07:00
sys_ia32.h unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
syscall.h x86: Fix sys_call_table type in asm/syscall.h 2013-08-06 14:18:08 -07:00
syscalls.h x86, asmlinkage: Make various syscalls asmlinkage 2013-08-06 14:18:33 -07:00
sysfb.h x86: sysfb: move EFI quirks from efifb to sysfb 2013-08-02 16:17:47 -07:00
tce.h
thread_info.h x86: kill TIF_DEBUG 2013-07-03 16:08:01 -07:00
time.h
timer.h
timex.h
tlb.h x86-32: Fix possible incomplete TLB invalidate with PAE pagetables 2013-04-12 16:56:47 -07:00
tlbflush.h mm: vmstats: track TLB flush stats on UP too 2013-09-11 15:57:09 -07:00
topology.h x86 / cpu topology: remove the stale macro arch_provides_topology_pointers 2013-07-29 13:12:45 -07:00
trace_clock.h
traps.h x86, asmlinkage: Change dotraplinkage into __visible on 32bit 2013-08-06 14:18:17 -07:00
tsc.h perf/x86: Add ability to calculate TSC from perf sample timestamps 2013-07-23 12:17:45 +02:00
uaccess_32.h
uaccess_64.h x86: uaccess s/might_sleep/might_fault/ 2013-05-28 09:41:10 +02:00
uaccess.h x86, doc: Update uaccess.h comment to reflect clang changes 2013-08-29 13:34:50 -07:00
unaligned.h
unistd.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
uprobes.h uretprobes/x86: Hijack return address 2013-04-13 15:31:55 +02:00
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmx.h nEPT: Nested INVEPT 2013-08-07 15:57:42 +02:00
vsyscall.h
vvar.h x86, asmlinkage, vdso: Mark vdso variables __visible 2013-08-06 14:21:08 -07:00
word-at-a-time.h
x2apic.h
x86_init.h x86: Increase precision of x86_platform.get/set_wallclock() 2013-05-28 14:00:59 -07:00
xcr.h
xor_32.h
xor_64.h
xor_avx.h crypto: xor - Check for osxsave as well as avx in crypto/xor 2013-08-21 21:08:35 +10:00
xor.h
xsave.h