aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel/entry.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-10-13 21:42:46 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-13 21:53:15 -0700
commiteb2d8d60327bec172ec80efbda94d0c492088204 (patch)
tree5c01deb8c251f8aa64cc3db2b95fd26f8ac285a6 /arch/sparc64/kernel/entry.S
parenta650d3839e7a68321e5b76264398a63019b0928b (diff)
[SPARC64]: Access ivector_table[] using physical addresses.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/entry.S')
-rw-r--r--arch/sparc64/kernel/entry.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index 9a785293203..c9b0d7af64a 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -429,16 +429,16 @@ do_ivec:
stxa %g0, [%g0] ASI_INTR_RECEIVE
membar #Sync
- sethi %hi(ivector_table), %g2
+ sethi %hi(ivector_table_pa), %g2
+ ldx [%g2 + %lo(ivector_table_pa)], %g2
sllx %g3, 4, %g3
- or %g2, %lo(ivector_table), %g2
add %g2, %g3, %g3
- TRAP_LOAD_IRQ_WORK(%g6, %g1)
+ TRAP_LOAD_IRQ_WORK_PA(%g6, %g1)
- ldx [%g6], %g5 /* g5 = irq_work(cpu) */
- stx %g5, [%g3 + 0x00] /* bucket->irq_chain = g5 */
- stx %g3, [%g6] /* irq_work(cpu) = bucket */
+ ldx [%g6], %g5
+ stxa %g5, [%g3] ASI_PHYS_USE_EC
+ stx %g3, [%g6]
wr %g0, 1 << PIL_DEVICE_IRQ, %set_softint
retry
do_ivec_xcall: