freebsd-skq/sys/i386
John Baldwin a5b6b9a68e Fix the triple fault used as a last resort during a reboot to actually
fault.  The previous method zero'd out the page tables, invalidated the
TLB, and then entered a spin loop.  The idea was that the instruction after
the TLB invalidate would result in a page fault and the page fault and
subsequent double fault wouldn't be able to determine the physical page
for their fault handlers' first instruction.  This stopped working when
PGE (PG_G PTE/PDE bit) support was added as a TLB invalidate via %cr3
reload doesn't clear TLB entries with PG_G set.  Thus, the CPU was still
able to map the virtual address for the spin loop and happily performed
its infinite loop.

The triple fault now uses a much more deterministic sledge-hammer approach
to generate a triple fault.  First, the IDT descriptor is set to point to
an empty IDT, so any interrupts (including a double fault) will instantly
fault.  Second, we trigger a int 3 breakpoint to force an interrupt and
kick off a triple fault.

MFC after:	3 days
2007-04-24 21:17:45 +00:00
..
acpica Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
bios Tweak the probe/attach order of devices on the x86 nexus devices. 2007-03-20 20:21:44 +00:00
compile
conf Remove trailing '.' for consistency! 2007-04-10 21:40:13 +00:00
cpufreq o introduce a flags 'errata' for HW bugs onto the softc. 2007-01-23 19:20:30 +00:00
i386 Fix the triple fault used as a last resort during a reboot to actually 2007-04-24 21:17:45 +00:00
ibcs2 Fix a silly bogon that broke ibcs2_rename(). 2007-03-26 15:39:49 +00:00
include Add support for specifying a minimal size for vm.kmem_size in the loader via 2007-04-21 01:14:48 +00:00
isa Add an interface for drivers to be notified of changes to CPU frequency. 2007-03-26 18:03:29 +00:00
linux MFP4: Turn emul_lock into a mutex. 2007-04-02 18:38:13 +00:00
pci Expand the MSI/MSI-X API to address some deficiencies in the MSI-X support. 2007-01-22 21:48:44 +00:00
svr4 Use svr4_si_{addr,code,errno,signo,trap} in preference to si_{...}. 2005-10-19 14:59:54 +00:00
xbox - Fix typo in #error pragma: compitable -> compatible 2006-08-15 20:10:49 +00:00
Makefile