freebsd-nq/sys/amd64
Konstantin Belousov 6a440fc3e0 Route all returns from the interrupts and faults through the doreti_iret
labeled iretq instruction.

Suppose that multithreaded process executes two threads, currently
scheduled on different processors. Let assume that thread A executes
using %cs or %ss pointing into the descriptor from LDT. If IPI comes
which handler does not return by jump to doreti, and meantime thread B
invalidates descriptor pointed to by %cs or %ss, then iretq from IPI
handler could fault.

Routing the return by doreti_iret allows kernel to catch the situation
and recover from it by sending signal to the usermode.

Tested by:	pho
MFC after:	1 week
2010-05-12 10:29:35 +00:00
..
acpica Use the same policy for rejecting / not-reject ACPI tables with incorrect 2010-03-19 12:43:18 +00:00
amd64 Route all returns from the interrupts and faults through the doreti_iret 2010-05-12 10:29:35 +00:00
compile
conf Set USB_DEBUG like the other platforms, I had turned it off to test the build 2010-04-25 22:01:32 +00:00
ia32 As was done in r155238 for i386 and in r155239 for amd64, clear the carry 2010-04-21 11:17:16 +00:00
include Add definitions for Intel AESNI CPUID bits and print the capabilities 2010-05-05 21:07:47 +00:00
linux32 Rename st_*timespec fields to st_*tim for POSIX 2008 compliance. 2010-03-28 13:13:22 +00:00
pci number of cleanups in i386 and amd64 pci md code 2009-09-24 07:11:23 +00:00
Makefile Adjustments to make a tags file a bit more suitable to amd64. 2008-12-01 14:15:10 +00:00