diff -X linux-2.6.26-rc5-devel/Documentation/dontdiff -u -r linux-2.6.26-rc5-devel/arch/sparc64/lib/mcount.S linux-2.6.26-rc5-overflow/arch/sparc64/lib/mcount.S --- linux-2.6.26-rc5-devel/arch/sparc64/lib/mcount.S 2008-05-26 20:08:11.000000000 +0200 +++ linux-2.6.26-rc5-overflow/arch/sparc64/lib/mcount.S 2008-06-17 22:50:56.000000000 +0200 @@ -26,6 +26,8 @@ .align 8 ovstack: .skip OVSTACKSIZE +ignore: + .word 0 #endif .text .align 32 @@ -36,7 +38,12 @@ /* * Check whether %sp is dangerously low. */ - ldub [%g6 + TI_FPDEPTH], %g1 + sethi %hi(ignore), %g3 + or %g3, %lo(ignore), %g3 + ld [%g3], %g1 + cmp %g1, 0 + bne 1f + ldub [%g6 + TI_FPDEPTH], %g1 srl %g1, 1, %g3 add %g3, 1, %g3 sllx %g3, 8, %g3 ! each fpregs frame is 256b @@ -45,6 +52,20 @@ sub %g3, STACK_BIAS, %g3 cmp %sp, %g3 bg,pt %xcc, 1f + + + mov 1, %g1 + sethi %hi(ignore), %g3 + st %g1, [%g3 + %lo(ignore)] + /*call dump_stack + nop + */ + nop + st %g0, [%g0] + + b 1f + nop + sethi %hi(panicstring), %g3 sethi %hi(ovstack), %g7 ! cant move to panic stack fast enough or %g7, %lo(ovstack), %g7