aboutsummaryrefslogtreecommitdiff
path: root/hw/psi.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-12-05 07:42:09 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2014-12-05 10:54:27 +1100
commit1c72cd1a0ca1b0de32c16f11517193ac582fab98 (patch)
tree2154000a5cc072e0610dcc11e7507521d817a0c8 /hw/psi.c
parent1ee766ac7733ef975e3d40c4ccb5886299a0eb5b (diff)
downloadskiboot-1c72cd1a0ca1b0de32c16f11517193ac582fab98.zip
skiboot-1c72cd1a0ca1b0de32c16f11517193ac582fab98.tar.gz
skiboot-1c72cd1a0ca1b0de32c16f11517193ac582fab98.tar.bz2
occ: Fix clearing of OCC interrupt on remote fix
If the OCC interrupt comes from another chip, we incorrectly try to clear it on the local one. This causes hangs at boot on some machines. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/psi.c')
-rw-r--r--hw/psi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/psi.c b/hw/psi.c
index 1dba69a..70403fd 100644
--- a/hw/psi.c
+++ b/hw/psi.c
@@ -278,7 +278,7 @@ static void handle_extra_interrupt(struct psi *psi)
* when available.
*/
if (val & PSIHB_IRQ_STAT_OCC)
- occ_interrupt();
+ occ_interrupt(psi->chip_id);
if (val & PSIHB_IRQ_STAT_FSI)
printf("PSI: FSI irq received\n");
if (val & PSIHB_IRQ_STAT_LPC) {