Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -551,9 +551,10 @@ setup_trap_table:
	save	%sp, -192, %sp

	/* Force interrupts to be disabled. */
	rdpr	%pstate, %o1
	andn	%o1, PSTATE_IE, %o1
	rdpr	%pstate, %l0
	andn	%l0, PSTATE_IE, %o1
	wrpr	%o1, 0x0, %pstate
	rdpr	%pil, %l1
	wrpr	%g0, 15, %pil

	/* Make the firmware call to jump over to the Linux trap table.  */
@@ -622,11 +623,9 @@ setup_trap_table:
	call	init_irqwork_curcpu
	 nop

	/* Now we can turn interrupts back on. */
	rdpr	%pstate, %o1
	or	%o1, PSTATE_IE, %o1
	wrpr	%o1, 0, %pstate
	wrpr	%g0, 0x0, %pil
	/* Now we can restore interrupt state. */
	wrpr	%l0, 0, %pstate
	wrpr	%l1, 0x0, %pil

	ret
	 restore
+0 −2
Original line number Diff line number Diff line
@@ -928,8 +928,6 @@ static void sparc64_start_timers(void)
	__asm__ __volatile__("wrpr	%0, 0x0, %%pstate"
			     : /* no outputs */
			     : "r" (pstate));

	local_irq_enable();
}

struct freq_table {