<snip>

--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S

<snip>

+#ifdef CONFIG_40x
        .globl  ret_from_crit_exc
ret_from_crit_exc:
+       mfspr   r9,SPRN_SPRG3
        lis     r10,[EMAIL PROTECTED];
        lwz     r10,[EMAIL PROTECTED](r10);
        tovirt(r9,r9);
+       stw     r10,KSP_LIMIT(r9)
        lis     r9, [EMAIL PROTECTED];
        lwz     r9, [EMAIL PROTECTED](r9);
        lis     r10, [EMAIL PROTECTED];
        lwz     r10, [EMAIL PROTECTED](r10);
+       mtspr   SPRN_SRR0,r9;
+       mtspr   SPRN_SRR1,r10;
        RET_FROM_EXC_LEVEL(SPRN_CSRR0, SPRN_CSRR1, RFCI)
+#endif /* CONFIG_40x */

With the above changes, I no longer get kernel panics on returning from
critical exceptions.  Breakpoints and single stepping worked on my
405GP board.

Again, not stress tested but it's looking much better.

josh

Thanks. I've just posted v5 with the various fixes for 40x. Can you test those out to make sure they still work.

- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to