sparc64: Fix recursion in stack overflow detection handling.
The calls down into prom_printf() when we detect an overflowed stack can recurse again since the overflow stack will be "below" the current kernel stack limit. Prevent this by just returning straight if we are on the stack overflow safe stack already. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c6ed413ddc
Коммит
c7498081a6
|
@ -48,12 +48,23 @@ mcount:
|
|||
sub %g3, STACK_BIAS, %g3
|
||||
cmp %sp, %g3
|
||||
bg,pt %xcc, 1f
|
||||
sethi %hi(panicstring), %g3
|
||||
nop
|
||||
/* If we are already on ovstack, don't hop onto it
|
||||
* again, we are already trying to output the stack overflow
|
||||
* message.
|
||||
*/
|
||||
sethi %hi(ovstack), %g7 ! cant move to panic stack fast enough
|
||||
or %g7, %lo(ovstack), %g7
|
||||
add %g7, OVSTACKSIZE, %g7
|
||||
add %g7, OVSTACKSIZE, %g3
|
||||
sub %g3, STACK_BIAS + 192, %g3
|
||||
sub %g7, STACK_BIAS, %g7
|
||||
mov %g7, %sp
|
||||
cmp %sp, %g7
|
||||
blu,pn %xcc, 2f
|
||||
cmp %sp, %g3
|
||||
bleu,pn %xcc, 1f
|
||||
nop
|
||||
2: mov %g3, %sp
|
||||
sethi %hi(panicstring), %g3
|
||||
call prom_printf
|
||||
or %g3, %lo(panicstring), %o0
|
||||
call prom_halt
|
||||
|
|
Загрузка…
Ссылка в новой задаче