Module Name: src Committed By: jdc Date: Thu Aug 9 06:52:14 UTC 2012
Modified Files: src/sys/arch/powerpc/booke [netbsd-6]: genassym.cf trap_subr.S src/sys/arch/powerpc/include [netbsd-6]: frame.h Log Message: Pull up revisions: src/sys/arch/powerpc/booke/genassym.cf revision 1.9 src/sys/arch/powerpc/booke/trap_subr.S revision 1.8 src/sys/arch/powerpc/include/frame.h revision 1.25 (requested by matt in ticket #461). Fix a problem where the kernel could randomly reset due to a watchdog event. When an exception happens, the srr0 (exception PC) was being saved in the normal location of the current callframe. This was fine except when the routine was in its prologue after it had saved LR but had not yet updated the stack pointer or when the routine was in its epilogue after it has restored the stack pointer but not yet loaded the LR. In either case this would cause the LR to be corrupted (either running the routine forever or by branching to itself forever). Now we save and restore the contents of that memory location so the corruption can't happen. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.8.8.1 src/sys/arch/powerpc/booke/genassym.cf cvs rdiff -u -r1.6 -r1.6.8.1 src/sys/arch/powerpc/booke/trap_subr.S cvs rdiff -u -r1.23 -r1.23.8.1 src/sys/arch/powerpc/include/frame.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.