linux/arch
Geoff Levand 9db74684bd powerpc/ps3: Fix lost SMP IPIs
commit 72f3bea075 upstream.

Fixes the PS3 bootup hang introduced in 3.0-rc1 by:

  commit 317f394160
  sched: Move the second half of ttwu() to the remote cpu

Move the PS3's LV1 EOI call lv1_end_of_interrupt_ext() from ps3_chip_eoi()
to ps3_get_irq() for IPI messages.

If lv1_send_event_locally() is called between a previous call to
lv1_send_event_locally() and the coresponding call to
lv1_end_of_interrupt_ext() the second event will not be delivered to the
target cpu.

The PS3's SMP IPIs are implemented using lv1_send_event_locally(), so if two
IPI messages of the same type are sent to the same target in a relatively
short period of time the second IPI event can become lost when
lv1_end_of_interrupt_ext() is called from ps3_chip_eoi().

Signed-off-by: Geoff Levand <geoff@infradead.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-21 14:31:25 -08:00
..
alpha irq_work, alpha: Fix up arch hooks 2011-08-04 21:58:37 -07:00
arm ARM: mach-ux500: unlock I&D l2x0 caches before init 2011-11-11 09:36:17 -08:00
avr32 rtc: fix build warnings in defconfigs 2011-06-15 20:04:02 -07:00
blackfin rtc: fix build warnings in defconfigs 2011-06-15 20:04:02 -07:00
cris cris: add missing declaration of kgdb_init() and breakpoint() 2011-08-15 18:31:32 -07:00
frv Merge branch 'setns' 2011-05-28 10:51:01 -07:00
h8300 Merge branch 'setns' 2011-05-28 10:51:01 -07:00
ia64 [IA64] wire up sendmmsg() syscall for Itanium 2011-05-31 10:09:24 -07:00
m32r Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
m68k m68k: use kernel processor defines for conditional optimizations 2011-06-14 11:42:29 +10:00
microblaze Merge branch 'setns' 2011-05-28 10:51:01 -07:00
mips MIPS: PM: Use struct syscore_ops instead of sysdevs for PM (v2) 2011-10-16 14:14:55 -07:00
mn10300 MN10300: asm/uaccess.h needs to #include linux/kernel.h for might_sleep() 2011-06-21 18:31:44 -07:00
parisc fix return type of __atomic64_add_return 2011-08-15 18:31:32 -07:00
powerpc powerpc/ps3: Fix lost SMP IPIs 2011-11-21 14:31:25 -08:00
s390 thp: share get_huge_page_tail() 2011-11-11 09:36:48 -08:00
score arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT} 2011-05-26 17:12:38 -07:00
sh sh: Fix cached/uncaced address calculation in 29bit mode 2011-11-21 14:31:15 -08:00
sparc sparc64: Force the execute bit in OpenFirmware's translation entries. 2011-10-16 14:14:51 -07:00
tile Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
um um: fix ubd cow size 2011-11-11 09:36:19 -08:00
unicore32 unicore32: using generic-y format for one line asm-generic files 2011-06-09 16:29:52 +08:00
x86 xen:pvhvm: enable PVHVM VCPU placement when using more than 32 CPUs. 2011-11-21 14:31:23 -08:00
xtensa xtensa: prevent arbitrary read in ptrace 2011-08-04 21:58:39 -07:00
.gitignore
Kconfig mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00