summaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel/rtrap.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2005-08-29 22:46:43 -0700
committerDavid S. Miller <davem@davemloft.net>2005-08-29 22:46:43 -0700
commitd7ce78fd9a51ca0d6b9a8cf35baef884ddb9a95c (patch)
treed7103663f1b5262d7a90f9d99e0c2af611ad07c9 /arch/sparc64/kernel/rtrap.S
parent826509f8110049663799bc20f2b5b6170e2f78ca (diff)
[SPARC64]: Eliminate irq_cpustat_t.
We can put the __softirq_pending mask in the cpudata, no need for the silly NR_CPUS array in kernel/softirq.c Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/rtrap.S')
-rw-r--r--arch/sparc64/kernel/rtrap.S13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S
index 0696ed4b9d64..fafd227735fa 100644
--- a/arch/sparc64/kernel/rtrap.S
+++ b/arch/sparc64/kernel/rtrap.S
@@ -153,11 +153,14 @@ __handle_signal:
rtrap_irq:
rtrap_clr_l6: clr %l6
rtrap:
- ldub [%g6 + TI_CPU], %l0
- sethi %hi(irq_stat), %l2 ! &softirq_active
- or %l2, %lo(irq_stat), %l2 ! &softirq_active
-irqsz_patchme: sllx %l0, 0, %l0
- lduw [%l2 + %l0], %l1 ! softirq_pending
+#ifndef CONFIG_SMP
+ sethi %hi(per_cpu____cpu_data), %l0
+ lduw [%l0 + %lo(per_cpu____cpu_data)], %l1
+#else
+ sethi %hi(per_cpu____cpu_data), %l0
+ or %l0, %lo(per_cpu____cpu_data), %l0
+ lduw [%l0 + %g5], %l1
+#endif
cmp %l1, 0
/* mm/ultra.S:xcall_report_regs KNOWS about this load. */