[PATCH] powerpc: Don't use toc in decrementer_iSeries_masked
Since 404849bbd2bfd62e05b36f4753f6e1af6050a824 we've been using LOAD_REG_ADDRBASE, which uses the toc pointer, in decrementer_iSeries_masked. This can explode if we take the decrementer interrupt while we're in a module, because the toc pointer in r2 will be the module's toc pointer. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
09f5dc44ae
commit
f9b4045d6b
@ -749,11 +749,12 @@ iSeries_secondary_smp_loop:
|
|||||||
|
|
||||||
.globl decrementer_iSeries_masked
|
.globl decrementer_iSeries_masked
|
||||||
decrementer_iSeries_masked:
|
decrementer_iSeries_masked:
|
||||||
|
/* We may not have a valid TOC pointer in here. */
|
||||||
li r11,1
|
li r11,1
|
||||||
ld r12,PACALPPACAPTR(r13)
|
ld r12,PACALPPACAPTR(r13)
|
||||||
stb r11,LPPACADECRINT(r12)
|
stb r11,LPPACADECRINT(r12)
|
||||||
LOAD_REG_ADDRBASE(r12,tb_ticks_per_jiffy)
|
LOAD_REG_IMMEDIATE(r12, tb_ticks_per_jiffy)
|
||||||
lwz r12,ADDROFF(tb_ticks_per_jiffy)(r12)
|
lwz r12,0(r12)
|
||||||
mtspr SPRN_DEC,r12
|
mtspr SPRN_DEC,r12
|
||||||
/* fall through */
|
/* fall through */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user