<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