linux/arch
Zwane Mwaikambo 77f72b192f [PATCH] i386: LVT entries remaining unmasked on reboot
Excerpt from bugzilla entry

http://bugzilla.kernel.org/show_bug.cgi?id=5518

"i386 version of Reboot-through-BIOS is unsafe: it forgets to mask APIC LVT
interrupts before jumping to a BIOS entry point.  As a result, BIOS ends up
bombarded with interrupts early on boot.  The BIOS does not expect it since
following a "normal" hardware cpu reset, all APIC LVT registers have the
Mask bit (16) set and can't generate interrupts.

For example, the version of Phoenix BIOS used by VMware enables interrupts
for the first time before masking/clearing APIC LVT.  The APIC Timer LVT
register is still set up for a timer interrupt delivery with a high vector
from the previous Linux incarnation (0xef in our case).  The BIOS has not
fully initialized its IDT at this point and the real mode gate for 0xef
remains all zeros.  Vector 0xef dispatches BIOS to address 0:0, BIOS takes
a #GP and eventually hangs.

machine_shutdown() does attempt to shut down APIC before jumping to BIOS,
but it is ineffective"

Signed-off-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Cc: "Seth, Rohit" <rohit.seth@intel.com>
Cc: Zachary Amsden <zach@vmware.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:53:28 -08:00
..
alpha [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
arm [ARM] Fix /proc/cpuinfo format for ARM SMP 2005-11-06 21:41:08 +00:00
arm26 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
cris [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
frv [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
h8300 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
i386 [PATCH] i386: LVT entries remaining unmasked on reboot 2005-11-07 07:53:28 -08:00
ia64 [PATCH] ia64: re-implement dma_get_cache_alignment to avoid EXPORT_SYMBOL 2005-11-07 07:53:23 -08:00
m32r Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-10-31 07:32:56 -08:00
m68k [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
m68knommu [PATCH] m68knommu: updated defconfig 2005-11-01 21:41:19 -08:00
mips Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-10-31 07:32:56 -08:00
parisc [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
powerpc [PATCH] ppc32: Add 440SPe support 2005-11-07 07:53:26 -08:00
ppc [PATCH] ppc32: Add CPM1 config option 2005-11-07 07:53:27 -08:00
ppc64 [PATCH] ppc64: Fix zImage boot 2005-11-07 07:53:23 -08:00
s390 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
sh [PATCH] sh: Use pfn_valid() for lazy dcache write-back on SH7705 2005-11-07 07:53:28 -08:00
sh64 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
sparc [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
sparc64 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
um [PATCH] missing platform_device.h includes 2005-11-01 21:50:01 -08:00
v850 [PATCH] jiffies_64 cleanup 2005-10-30 17:37:25 -08:00
x86_64 [PATCH] x86-64: bitops fix for -Os 2005-11-02 19:41:32 -08:00
xtensa Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-10-31 07:32:56 -08:00