diff options
author | Geoff Levand <geoff@infradead.org> | 2011-11-08 16:37:26 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-11-22 02:35:26 +0400 |
commit | 9c24bb2008643ecd7588a20fd5ac7e8491f7c5d4 (patch) | |
tree | 98b61435dd4060aa488aaabebc0b7a86d6be4df2 /include/video | |
parent | 8bb72ab63d58957270b2dc31e6c9bcfa38470d2c (diff) | |
download | linux-9c24bb2008643ecd7588a20fd5ac7e8491f7c5d4.tar.xz |
powerpc/ps3: Fix lost SMP IPIs
commit 72f3bea075287785ed32b777b6dd2636aa7002e8 upstream.
Fixes the PS3 bootup hang introduced in 3.0-rc1 by:
commit 317f394160e9beb97d19a84c39b7e5eb3d7815a
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>
Diffstat (limited to 'include/video')
0 files changed, 0 insertions, 0 deletions