diff options
Diffstat (limited to 'arch/sparc64/kernel/entry.S')
-rw-r--r-- | arch/sparc64/kernel/entry.S | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index 9a785293203f..c9b0d7af64ae 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -429,16 +429,16 @@ do_ivec: | |||
429 | stxa %g0, [%g0] ASI_INTR_RECEIVE | 429 | stxa %g0, [%g0] ASI_INTR_RECEIVE |
430 | membar #Sync | 430 | membar #Sync |
431 | 431 | ||
432 | sethi %hi(ivector_table), %g2 | 432 | sethi %hi(ivector_table_pa), %g2 |
433 | ldx [%g2 + %lo(ivector_table_pa)], %g2 | ||
433 | sllx %g3, 4, %g3 | 434 | sllx %g3, 4, %g3 |
434 | or %g2, %lo(ivector_table), %g2 | ||
435 | add %g2, %g3, %g3 | 435 | add %g2, %g3, %g3 |
436 | 436 | ||
437 | TRAP_LOAD_IRQ_WORK(%g6, %g1) | 437 | TRAP_LOAD_IRQ_WORK_PA(%g6, %g1) |
438 | 438 | ||
439 | ldx [%g6], %g5 /* g5 = irq_work(cpu) */ | 439 | ldx [%g6], %g5 |
440 | stx %g5, [%g3 + 0x00] /* bucket->irq_chain = g5 */ | 440 | stxa %g5, [%g3] ASI_PHYS_USE_EC |
441 | stx %g3, [%g6] /* irq_work(cpu) = bucket */ | 441 | stx %g3, [%g6] |
442 | wr %g0, 1 << PIL_DEVICE_IRQ, %set_softint | 442 | wr %g0, 1 << PIL_DEVICE_IRQ, %set_softint |
443 | retry | 443 | retry |
444 | do_ivec_xcall: | 444 | do_ivec_xcall: |