diff options
Diffstat (limited to 'arch/sparc64/kernel/head.S')
| -rw-r--r-- | arch/sparc64/kernel/head.S | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index 75684b56767e..c8e9dc9d68a9 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
| @@ -551,9 +551,10 @@ setup_trap_table: | |||
| 551 | save %sp, -192, %sp | 551 | save %sp, -192, %sp |
| 552 | 552 | ||
| 553 | /* Force interrupts to be disabled. */ | 553 | /* Force interrupts to be disabled. */ |
| 554 | rdpr %pstate, %o1 | 554 | rdpr %pstate, %l0 |
| 555 | andn %o1, PSTATE_IE, %o1 | 555 | andn %l0, PSTATE_IE, %o1 |
| 556 | wrpr %o1, 0x0, %pstate | 556 | wrpr %o1, 0x0, %pstate |
| 557 | rdpr %pil, %l1 | ||
| 557 | wrpr %g0, 15, %pil | 558 | wrpr %g0, 15, %pil |
| 558 | 559 | ||
| 559 | /* Make the firmware call to jump over to the Linux trap table. */ | 560 | /* Make the firmware call to jump over to the Linux trap table. */ |
| @@ -622,11 +623,9 @@ setup_trap_table: | |||
| 622 | call init_irqwork_curcpu | 623 | call init_irqwork_curcpu |
| 623 | nop | 624 | nop |
| 624 | 625 | ||
| 625 | /* Now we can turn interrupts back on. */ | 626 | /* Now we can restore interrupt state. */ |
| 626 | rdpr %pstate, %o1 | 627 | wrpr %l0, 0, %pstate |
| 627 | or %o1, PSTATE_IE, %o1 | 628 | wrpr %l1, 0x0, %pil |
| 628 | wrpr %o1, 0, %pstate | ||
| 629 | wrpr %g0, 0x0, %pil | ||
| 630 | 629 | ||
| 631 | ret | 630 | ret |
| 632 | restore | 631 | restore |
