1
linux/arch/x86/include/asm
Jeremy Fitzhardinge 71999d9862 x86/paravirt: Use normal calling sequences for irq enable/disable
Bastian Blank reported a boot crash with stackprotector enabled,
and debugged it back to edx register corruption.

For historical reasons irq enable/disable/save/restore had special
calling sequences to make them more efficient.  With the more
recent introduction of higher-level and more general optimisations
this is no longer necessary so we can just use the normal PVOP_
macros.

This fixes some residual bugs in the old implementations which left
edx liable to inadvertent clobbering. Also, fix some bugs in
__PVOP_VCALLEESAVE which were revealed by actual use.

Reported-by: Bastian Blank <bastian@waldi.eu.org>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
Cc: Xen-devel <xen-devel@lists.xensource.com>
LKML-Reference: <4AD3BC9B.7040501@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-10-13 09:22:01 +02:00
..
uv x86: SGI UV: Add volatile semantics to macros that access chipset registers 2009-09-18 14:05:32 +02:00
visws
xen
a.out-core.h
a.out.h
acpi.h ACPI: Handle CONFIG_ACPI=n better from linux/acpi.h 2009-08-28 19:57:29 -04:00
aes.h
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
alternative-asm.h
alternative.h x86: properly annotate alternatives.c 2009-08-21 15:30:12 -07:00
amd_iommu_types.h Merge branch 'amd-iommu/pagetable' into amd-iommu/2.6.32 2009-09-03 17:14:57 +02:00
amd_iommu.h x86/amd-iommu: Add passthrough mode initialization functions 2009-09-03 16:15:42 +02:00
apic.h Merge branch 'linus' into x86/urgent 2009-09-20 20:25:03 +02:00
apicdef.h Merge branch 'kvm-updates/2.6.32' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2009-09-14 17:43:43 -07:00
apicnum.h
apm.h
asm.h x86, asm: Make _ASM_EXTABLE() usable from assembly code 2009-08-31 15:14:30 -07:00
atomic_32.h x86: atomic64: Inline atomic64_read() again 2009-07-04 11:45:00 +02:00
atomic_64.h x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP 2009-07-03 14:42:39 +02:00
atomic.h
auxvec.h
bios_ebda.h
bitops.h
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
boot.h x86, setup: correct include file in <asm/boot.h> 2009-06-25 15:16:06 -07:00
bootparam.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
bug.h
bugs.h
byteorder.h
cache.h Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
cacheflush.h x86, pat: Use page flags to track memtypes of RAM pages 2009-08-26 15:41:24 -07:00
calgary.h
calling.h
checksum_32.h x86: fix csum_ipv6_magic asm memory clobber 2009-10-01 16:11:12 -07:00
checksum_64.h
checksum.h
cmpxchg_32.h x86: Provide an alternative() based cmpxchg64() 2009-09-30 22:55:59 +02:00
cmpxchg_64.h
cmpxchg.h
compat.h
cpu_debug.h x86: cpu_debug: Remove model information to reduce encoding-decoding 2009-06-07 12:22:56 +02:00
cpu.h
cpufeature.h x86: Move APERF/MPERF into a X86_FEATURE 2009-09-15 16:51:25 +02:00
cpumask.h
cputime.h
current.h x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses 2009-08-04 01:28:52 +09:00
debugreg.h
delay.h
desc_defs.h x86: Introduce GDT_ENTRY_INIT() 2009-08-08 17:44:11 +02:00
desc.h x86: Introduce set_desc_base() and set_desc_limit() 2009-07-19 18:27:52 +02:00
device.h Driver Core: Add platform device arch data V3 2009-07-22 00:28:38 +02:00
div64.h
dma-mapping.h x86, IA64, powerpc: add phys_to_dma() and dma_to_phys() 2009-07-28 14:19:20 +09:00
dma.h
dmi.h
ds.h
dwarf2.h x86, asm: Add 32-bit versions of the combined CFI macros 2009-08-31 15:14:29 -07:00
e820.h x86: Move memory_setup to x86_init_ops 2009-08-27 17:12:52 +02:00
edac.h
efi.h x86: Make 64-bit efi_ioremap use ioremap on MMIO regions 2009-08-03 13:34:25 -07:00
elf.h x86: Increase MIN_GAP to include randomized stack 2009-09-10 17:00:12 -07:00
emergency-restart.h
entry_arch.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
errno.h
fb.h
fcntl.h
fixmap.h x86, intel_txt: Intel TXT boot support 2009-07-21 11:49:06 -07:00
floppy.h
frame.h
ftrace.h tracing: Remove FTRACE_SYSCALL_MAX definitions 2009-08-26 21:30:39 +02:00
futex.h
gart.h
genapic.h
geode.h
gpio.h
hardirq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
highmem.h
hpet.h
hugetlb.h
hw_irq.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
hypertransport.h
hypervisor.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
i387.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:58:08 -07:00
i8253.h
i8259.h
ia32_unistd.h
ia32.h
idle.h
init.h
io_32.h
io_64.h
io_apic.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
io.h x86: fix set_fixmap to use phys_addr_t 2009-04-10 20:27:13 +02:00
ioctl.h
ioctls.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
iomap.h x86, pat: Add PAT reserve free to io_mapping* APIs 2009-08-26 15:41:16 -07:00
iommu.h Intel IOMMU Pass Through Support 2009-04-29 06:54:34 +01:00
ipcbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
ipi.h
irq_regs.h
irq_remapping.h x86: x2apic, IR: Clean up X86_X2APIC and INTR_REMAP config checks 2009-04-21 09:08:25 +02:00
irq_vectors.h Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
irq.h x86: Move irq_init to x86_init_ops 2009-08-31 09:35:45 +02:00
irqflags.h x86: allow "=rm" in native_save_fl() 2009-08-25 16:47:16 -07:00
ist.h
k8.h x86: k8 convert node_to_k8_nb_misc() from a macro to an inline function 2009-04-15 12:12:36 +02:00
Kbuild
kdebug.h
kexec.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kmemcheck.h kmemcheck: add the kmemcheck core 2009-06-13 15:37:30 +02:00
kprobes.h
kvm_emulate.h KVM: Rename x86_emulate.c to emulate.c 2009-09-10 10:46:45 +03:00
kvm_host.h KVM: add support for change_pte mmu notifiers 2009-10-04 17:04:53 +02:00
kvm_para.h KVM: Add missing #include 2009-09-10 10:46:49 +03:00
kvm.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
ldt.h
lguest_hcall.h lguest: update commentry 2009-07-30 16:03:46 +09:30
lguest.h Merge commit 'origin/x86/urgent' into x86/asm 2009-08-25 15:40:29 -07:00
linkage.h
local.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mca_dma.h
mca.h
mce.h x86: EDAC: MCE: Fix MCE decoding callback logic 2009-10-02 15:42:18 +02:00
microcode.h x86: microcode: use smp_call_function_single instead of set_cpus_allowed, cleanup of synchronization logic 2009-05-12 10:36:44 +02:00
mman.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mmconfig.h
mmu_context.h cpumask: use mm_cpumask() wrapper: x86 2009-09-24 09:34:52 +09:30
mmu.h
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
mpspec_def.h
mpspec.h x86: Move get/find_smp_config to x86_init_ops 2009-08-31 09:35:45 +02:00
msgbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
msidef.h
msr-index.h Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-17 21:07:08 -07:00
msr.h x86, msr: Export the register-setting MSR functions via /dev/*/msr 2009-08-31 16:16:04 -07:00
mtrr.h x86, mtrr: make mtrr_aps_delayed_init static bool 2009-08-21 17:00:02 -07:00
mutex_32.h
mutex_64.h
mutex.h
nmi.h sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
nops.h x86/tracing: comment need for atomic nop 2009-09-10 17:22:44 -04:00
numa_32.h
numa_64.h x86, mm: Fix node_possible_map logic 2009-05-18 09:21:04 +02:00
numa.h
numaq.h
olpc.h
page_32_types.h x86: page_types.h unification of declarations 2009-04-14 11:44:45 +02:00
page_32.h
page_64_types.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
page_64.h
page_types.h x86: page_types.h unification of declarations 2009-04-14 11:44:45 +02:00
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
paravirt_types.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
paravirt.h x86/paravirt: Use normal calling sequences for irq enable/disable 2009-10-13 09:22:01 +02:00
parport.h
pat.h x86, pat: New i/f for driver to request memtype for IO regions 2009-08-26 15:41:10 -07:00
pci_64.h
pci_x86.h Revert "PCI: use ACPI _CRS data by default" 2009-06-24 16:23:03 -07:00
pci-direct.h
pci-functions.h
pci.h x86/PCI: default pcibus cpumask to all cpus if it lacks affinity 2009-09-18 08:51:10 -07:00
percpu.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
perf_event.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable_32_types.h module: merge module_alloc() finally 2009-06-12 21:47:03 +09:30
pgtable_32.h x86: Add NMI types for kmap_atomic, fix 2009-06-15 17:20:03 +02:00
pgtable_64_types.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
pgtable_64.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
pgtable_types.h Merge branch 'bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen into x86/urgent 2009-09-23 14:35:10 +02:00
pgtable-2level_types.h
pgtable-2level.h
pgtable-3level_types.h
pgtable-3level.h
pgtable.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 14:05:47 -07:00
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-17 21:00:02 -07:00
proto.h x86: fix power-of-2 round_up/round_down macros 2009-07-02 12:05:10 -07:00
ptrace-abi.h
ptrace.h Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 19:53:40 -07:00
pvclock-abi.h
pvclock.h
rdc321x_defs.h
reboot_fixups.h
reboot.h
required-features.h
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h
scatterlist.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h
segment.h
sembuf.h
serial.h
setup_arch.h
setup.h x86: Add Moorestown early detection 2009-08-31 11:09:40 +02:00
shmbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
shmparam.h
sigcontext32.h
sigcontext.h x86: add linux kernel support for YMM state 2009-04-12 13:08:56 +02:00
sigframe.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
smpboot_hooks.h
socket.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sockios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sparsemem.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
spinlock_types.h
spinlock.h memory barrier: adding smp_mb__after_lock 2009-07-09 17:06:58 -07:00
srat.h
stackprotector.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
stacktrace.h perf_counter: Ignore the nmi call frames in the x86-64 backtraces 2009-07-01 22:37:23 +02:00
stat.h
statfs.h
string_32.h x86: Trivial whitespace cleanups 2009-09-20 20:18:57 +02:00
string_64.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
string.h
suspend_32.h
suspend_64.h
suspend.h
svm.h KVM: Fix unneeded instruction skipping during task switching. 2009-06-10 11:48:38 +03:00
swab.h
swiotlb.h
sync_bitops.h
sys_ia32.h
syscall.h x86: syscall_get_nr returns int 2009-09-22 19:57:51 -07:00
syscalls.h x86: clean up declarations and variables 2009-04-12 15:20:16 +02:00
system_64.h
system.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
tce.h
termbits.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
termios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
thread_info.h Merge branch 'x86-percpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 08:01:28 -07:00
time.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
timer.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
timex.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
tlb.h
tlbflush.h x86: make zap_low_mapping could be used early 2009-06-12 13:50:24 +03:00
topology.h x86: Remove redundant non-NUMA topology functions 2009-09-24 14:16:15 +02:00
trampoline.h
traps.h x86: Remove unused patch_espfix_desc() 2009-07-19 18:27:52 +02:00
tsc.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
types.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
uaccess_32.h x86: Fix uaccess_32.h typo 2009-09-20 20:19:34 +02:00
uaccess_64.h x86: Fix movq immediate operand constraints in uaccess_64.h 2009-07-20 20:46:17 -07:00
uaccess.h x86: Fix movq immediate operand constraints in uaccess.h 2009-07-20 23:27:39 -07:00
ucontext.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
unaligned.h
unistd_32.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd_64.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
unistd.h
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h time: Introduce CLOCK_REALTIME_COARSE 2009-08-21 21:43:46 +02:00
virtext.h
vm86.h
vmi_time.h
vmi.h
vmware.h x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
vmx.h KVM: VMX: more MSR_IA32_VMX_EPT_VPID_CAP capability bits 2009-09-10 08:32:55 +03:00
vsyscall.h
x86_init.h x86: Move get/set_wallclock to x86_platform_ops 2009-09-16 14:34:50 +02:00
xcr.h
xor_32.h
xor_64.h
xor.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
xsave.h x86: add linux kernel support for YMM state 2009-04-12 13:08:56 +02:00