Because of always clearing DSISR at spu class 1 interrupt handler,
kernel may lose Class1[Mf] interrupt.
Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoff.levand@am.sony.com>
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
        stat  = in_be64(&spu->priv1->int_stat_class1_RW) & mask;
        dar   = in_be64(&spu->priv1->mfc_dar_RW);
        dsisr = in_be64(&spu->priv1->mfc_dsisr_RW);
-       out_be64(&spu->priv1->mfc_dsisr_RW, 0UL);
+       if (stat & 2) /* mapping fault */
+               out_be64(&spu->priv1->mfc_dsisr_RW, 0UL);
        out_be64(&spu->priv1->int_stat_class1_RW, stat);
        spin_unlock(&spu->register_lock);