freebsd-nq/sys/powerpc/ps3
Nathan Whitehorn 0c50edff52 Repair some races in IPI handling:
1. Make sure IPI mask is set before sending the IPI
2. Operate atomically on PS3 PIC outstanding interrupt list
3. Make sure IPIs are EOI'ed before, not after, processing. Without this,
   a second IPI could be sent partway through processing the first one,
   get erroneously acknowledge by the EOI to the first, and be lost. In
   particular in the case of smp_rendezvous(), this can be fatal.

In combination, this makes the PS3 boot SMP again. It probably also fixes
some latent bugs elsewhere.

MFC after:	2 weeks
2014-05-12 02:56:27 +00:00
..
ehci_ps3.c
if_glc.c
if_glcreg.h
mmu_ps3.c
ohci_ps3.c
platform_ps3.c
ps3_syscons.c
ps3-hv-asm.awk
ps3-hv-header.awk
ps3-hvcall.h
ps3-hvcall.master
ps3-hvcall.S
ps3bus.c
ps3bus.h
ps3cdrom.c
ps3disk.c
ps3pic.c Repair some races in IPI handling: 2014-05-12 02:56:27 +00:00