freebsd-skq/sys/powerpc
Nathan Whitehorn 53607fe3cc Fix an extremely subtle concurrency bug triggered by running on 32-thread
POWER8 systems. During thread switch, there was a very small window when
the stack pointer was set to the stack pointer of the outgoing thread, but
after the lock on that thread had already been released.

If, during that window, the outgoing thread were rescheduled on another CPU
and begin execution and an exception were taken on the original CPU, the
trap handler and the outgoing thread would simultaneously execute on the same
stack, causing memory corruption. Fix this by making sure to release the
old thread only after cpu_switch() is done with its stack.

MFC after:	2 weeks
Sponsored by:	FreeBSD Foundation
2015-02-09 02:17:21 +00:00
..
aim Simplify trapcode setup by placing a copy of the generic trap handler at 2015-02-09 02:12:38 +00:00
booke Refactor PowerPC (especially AIM) init sequence to be less baroque. 2015-01-18 18:32:43 +00:00
conf Make netbooting work again by disabling BOOTP_NFSV3. Investigate why this 2015-01-16 17:41:21 +00:00
cpufreq Some style(9) fixes 2013-12-13 05:54:25 +00:00
fpu Fix debug printfs in FPU_EMU to compile on powerpc64 and enable it for 2013-12-05 21:49:14 +00:00
include Make 64-bit AIM trap handlers relocatable by changing all absolute branch 2015-01-21 19:07:45 +00:00
mambo Move Open Firmware device root on PowerPC, ARM, and MIPS systems to 2014-02-05 14:44:22 +00:00
mpc85xx Move Open Firmware device root on PowerPC, ARM, and MIPS systems to 2014-02-05 14:44:22 +00:00
ofw Correctness improvements for removing FDT excluded memory areas. 2015-01-31 18:39:32 +00:00
powermac Add support for Power Button PMU events on non-ADB macs, such as aluminum 2014-11-20 03:23:33 +00:00
powerpc Fix an extremely subtle concurrency bug triggered by running on 32-thread 2015-02-09 02:17:21 +00:00
ps3 Add 64-bit DMA support in the XHCI controller driver. 2015-01-05 20:22:18 +00:00
pseries Technically speaking, using one virtal processor area for all CPUs is a 2015-02-09 02:13:36 +00:00
psim Move Open Firmware device root on PowerPC, ARM, and MIPS systems to 2014-02-05 14:44:22 +00:00
wii Moves all the duplicate code to a single function. 2014-11-18 17:22:08 +00:00