1
linux/arch/i386/kernel
Andi Kleen 8f4e956b31 x86: Stop MCEs and NMIs during code patching
When a machine check or NMI occurs while multiple byte code is patched
the CPU could theoretically see an inconsistent instruction and crash.
Prevent this by temporarily disabling MCEs and returning early in the
NMI handler.

Based on discussion with Mathieu Desnoyers.

Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-22 11:03:37 -07:00
..
acpi i386: insert HPET firmware resource after PCI enumeration has completed 2007-07-21 18:37:14 -07:00
cpu x86: Stop MCEs and NMIs during code patching 2007-07-22 11:03:37 -07:00
.gitignore
alternative.c x86: Stop MCEs and NMIs during code patching 2007-07-22 11:03:37 -07:00
apic.c i386: remove volatile in apic.c 2007-07-21 18:37:14 -07:00
apm.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
asm-offsets.c lguest: the asm offsets 2007-07-19 10:04:52 -07:00
bootflag.c
cpuid.c Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
crash_dump.c
crash.c move die notifier handling to common code 2007-05-08 11:15:04 -07:00
doublefault.c [PATCH] i386: i386 separate hardware-defined TSS from Linux additions 2007-05-02 19:27:13 +02:00
e820.c i386: do not restore reserved memory after hibernation 2007-07-21 18:37:12 -07:00
early_printk.c
efi_stub.S
efi.c arch/i386/* fs/* ipc/*: mark variables with uninitialized_var() 2007-07-17 16:23:19 -04:00
entry.S i386: fixup TRACE_IRQ breakage 2007-07-18 12:09:01 -07:00
geode.c i386: basic infrastructure support for AMD geode-class machines 2007-07-21 18:37:14 -07:00
head.S xen: Core Xen implementation 2007-07-18 08:47:42 -07:00
hpet.c i386: hpet assumes boot cpu is 0 2007-07-21 18:37:14 -07:00
i386_ksyms.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
i387.c
i8237.c
i8253.c i386: move PIT function declarations and constants to correct header file 2007-07-21 18:37:14 -07:00
i8259.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
init_task.c use the new percpu interface for shared data 2007-07-19 10:04:45 -07:00
io_apic.c i386: remove old IRQ balancing debug cruft 2007-07-21 18:37:14 -07:00
ioport.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
irq.c i386: Update alignment when 4K stacks are used. 2007-07-21 18:37:14 -07:00
kprobes.c x86: Fix alternatives and kprobes to remap write-protected kernel text 2007-07-22 11:03:37 -07:00
ldt.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
legacy_serial.c x86, serial: convert legacy COM ports to platform devices 2007-05-08 11:15:23 -07:00
machine_kexec.c
Makefile i386: basic infrastructure support for AMD geode-class machines 2007-07-21 18:37:14 -07:00
mca.c
microcode.c microcode: fix section mismatch warning 2007-06-01 08:18:30 -07:00
module.c
mpparse.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
msr.c Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
nmi.c i386: speedup touch_nmi_watchdog 2007-07-17 10:23:04 -07:00
numaq.c
paravirt.c x86: Fix alternatives and kprobes to remap write-protected kernel text 2007-07-22 11:03:37 -07:00
pci-dma.c x86: Disable DAC on VIA bridges 2007-06-20 14:27:25 -07:00
pcspeaker.c [PATCH] x86: Unify pcspeaker platform device code between i386/x86-64 2007-02-13 13:26:26 +01:00
process.c x86: Make Alt-SysRq-p display the debug register contents 2007-07-21 18:37:10 -07:00
ptrace.c Handle bogus %cs selector in single-step instruction decoding 2007-07-18 12:09:01 -07:00
quirks.c Clean up E7520/7320/7525 quirk printk. 2007-07-07 13:53:13 -07:00
reboot_fixups.c GEODE: reboot fixup for geode machines with CS5536 boards 2007-07-06 11:45:11 -07:00
reboot.c i386: DMI_MATCH patch in reboot.c for SFF Dell OptiPlex 745 - fixes hang on reboot 2007-07-21 18:37:12 -07:00
relocate_kernel.S
scx200.c
setup.c i386: divorce CONFIG_X86_PAE from CONFIG_HIGHMEM64G 2007-07-21 18:37:12 -07:00
sigframe.h
signal.c x86: i386-show-unhandled-signals-v3 2007-07-22 11:03:37 -07:00
smp.c paravirt: unstatic leave_mm 2007-07-18 08:47:41 -07:00
smpboot.c paravirt: make siblingmap functions visible 2007-07-18 08:47:41 -07:00
smpcommon.c i386: Allow smp_call_function_single() to current cpu 2007-07-16 12:05:50 +03:00
srat.c ACPI: build fix for IBM x440 - CONFIG_X86_SUMMIT 2007-02-02 21:47:33 -05:00
summit.c
sys_i386.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
syscall_table.S sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
sysenter.c i386: allow debuggers to access the vsyscall page with compat vDSO 2007-07-21 18:37:09 -07:00
time.c NTP: move the cmos update code into ntp.c 2007-07-21 17:49:15 -07:00
topology.c Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
trampoline.S [PATCH] i386: Rename boot_gdt_table to boot_gdt 2007-05-02 19:27:10 +02:00
traps.c x86: Stop MCEs and NMIs during code patching 2007-07-22 11:03:37 -07:00
tsc_sync.c [PATCH] x86: rewrite SMP TSC sync code 2007-02-16 08:13:57 -08:00
tsc.c lguest: the host code 2007-07-19 10:04:52 -07:00
vm86.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
vmi.c Add a sched_clock paravirt_op 2007-07-18 08:47:42 -07:00
vmiclock.c i386: move PIT function declarations and constants to correct header file 2007-07-21 18:37:14 -07:00
vmlinux.lds.S i386: Put allocated ELF notes in read-only data segment 2007-07-19 10:04:47 -07:00
vsyscall-int80.S
vsyscall-note.S xen: disable vdso "nosegneg" on native boot 2007-07-20 08:44:19 -07:00
vsyscall-sigreturn.S
vsyscall-sysenter.S
vsyscall.lds.S [PATCH] i386: VDSO_PRELINK warning fix 2007-05-02 19:27:09 +02:00
vsyscall.S