aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index f9da79eb3db0..3a5302151e09 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -240,7 +240,8 @@ spu_irq_class_1(int irq, void *data, struct pt_regs *regs)
240 stat = in_be64(&spu->priv1->int_stat_class1_RW) & mask; 240 stat = in_be64(&spu->priv1->int_stat_class1_RW) & mask;
241 dar = in_be64(&spu->priv1->mfc_dar_RW); 241 dar = in_be64(&spu->priv1->mfc_dar_RW);
242 dsisr = in_be64(&spu->priv1->mfc_dsisr_RW); 242 dsisr = in_be64(&spu->priv1->mfc_dsisr_RW);
243 out_be64(&spu->priv1->mfc_dsisr_RW, 0UL); 243 if (stat & 2) /* mapping fault */
244 out_be64(&spu->priv1->mfc_dsisr_RW, 0UL);
244 out_be64(&spu->priv1->int_stat_class1_RW, stat); 245 out_be64(&spu->priv1->int_stat_class1_RW, stat);
245 spin_unlock(&spu->register_lock); 246 spin_unlock(&spu->register_lock);
246 247