Commit d8573e20 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Make sure IRQs are disabled properly during early boot.

Else we trigger the new irqs_disable() assertion in start_kernel().
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 18b0bbd8
...@@ -551,9 +551,10 @@ setup_trap_table: ...@@ -551,9 +551,10 @@ setup_trap_table:
save %sp, -192, %sp save %sp, -192, %sp
/* Force interrupts to be disabled. */ /* Force interrupts to be disabled. */
rdpr %pstate, %o1 rdpr %pstate, %l0
andn %o1, PSTATE_IE, %o1 andn %l0, PSTATE_IE, %o1
wrpr %o1, 0x0, %pstate wrpr %o1, 0x0, %pstate
rdpr %pil, %l1
wrpr %g0, 15, %pil wrpr %g0, 15, %pil
/* Make the firmware call to jump over to the Linux trap table. */ /* Make the firmware call to jump over to the Linux trap table. */
...@@ -622,11 +623,9 @@ setup_trap_table: ...@@ -622,11 +623,9 @@ setup_trap_table:
call init_irqwork_curcpu call init_irqwork_curcpu
nop nop
/* Now we can turn interrupts back on. */ /* Now we can restore interrupt state. */
rdpr %pstate, %o1 wrpr %l0, 0, %pstate
or %o1, PSTATE_IE, %o1 wrpr %l1, 0x0, %pil
wrpr %o1, 0, %pstate
wrpr %g0, 0x0, %pil
ret ret
restore restore
......
...@@ -928,8 +928,6 @@ static void sparc64_start_timers(void) ...@@ -928,8 +928,6 @@ static void sparc64_start_timers(void)
__asm__ __volatile__("wrpr %0, 0x0, %%pstate" __asm__ __volatile__("wrpr %0, 0x0, %%pstate"
: /* no outputs */ : /* no outputs */
: "r" (pstate)); : "r" (pstate));
local_irq_enable();
} }
struct freq_table { struct freq_table {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment