diff options
Diffstat (limited to 'arch/sparc/kernel/entry.S')
-rw-r--r-- | arch/sparc/kernel/entry.S | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index 1879739c9588..d759cf31c8ee 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -401,6 +401,22 @@ linux_trap_ipi15_sun4d: | |||
401 | 1: b,a 1b | 401 | 1: b,a 1b |
402 | 402 | ||
403 | #ifdef CONFIG_SPARC_LEON | 403 | #ifdef CONFIG_SPARC_LEON |
404 | .globl smpleon_ipi | ||
405 | .extern leon_ipi_interrupt | ||
406 | /* SMP per-cpu IPI interrupts are handled specially. */ | ||
407 | smpleon_ipi: | ||
408 | SAVE_ALL | ||
409 | or %l0, PSR_PIL, %g2 | ||
410 | wr %g2, 0x0, %psr | ||
411 | WRITE_PAUSE | ||
412 | wr %g2, PSR_ET, %psr | ||
413 | WRITE_PAUSE | ||
414 | call leonsmp_ipi_interrupt | ||
415 | add %sp, STACKFRAME_SZ, %o1 ! pt_regs | ||
416 | wr %l0, PSR_ET, %psr | ||
417 | WRITE_PAUSE | ||
418 | RESTORE_ALL | ||
419 | |||
404 | .align 4 | 420 | .align 4 |
405 | .globl linux_trap_ipi15_leon | 421 | .globl linux_trap_ipi15_leon |
406 | linux_trap_ipi15_leon: | 422 | linux_trap_ipi15_leon: |