diff options
author | David S. Miller <davem@davemloft.net> | 2005-08-30 01:46:43 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-08-30 01:46:43 -0400 |
commit | d7ce78fd9a51ca0d6b9a8cf35baef884ddb9a95c (patch) | |
tree | d7103663f1b5262d7a90f9d99e0c2af611ad07c9 /arch/sparc64 | |
parent | 826509f8110049663799bc20f2b5b6170e2f78ca (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')
-rw-r--r-- | arch/sparc64/kernel/rtrap.S | 13 | ||||
-rw-r--r-- | arch/sparc64/kernel/setup.c | 12 |
2 files changed, 8 insertions, 17 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: | |||
153 | rtrap_irq: | 153 | rtrap_irq: |
154 | rtrap_clr_l6: clr %l6 | 154 | rtrap_clr_l6: clr %l6 |
155 | rtrap: | 155 | rtrap: |
156 | ldub [%g6 + TI_CPU], %l0 | 156 | #ifndef CONFIG_SMP |
157 | sethi %hi(irq_stat), %l2 ! &softirq_active | 157 | sethi %hi(per_cpu____cpu_data), %l0 |
158 | or %l2, %lo(irq_stat), %l2 ! &softirq_active | 158 | lduw [%l0 + %lo(per_cpu____cpu_data)], %l1 |
159 | irqsz_patchme: sllx %l0, 0, %l0 | 159 | #else |
160 | lduw [%l2 + %l0], %l1 ! softirq_pending | 160 | sethi %hi(per_cpu____cpu_data), %l0 |
161 | or %l0, %lo(per_cpu____cpu_data), %l0 | ||
162 | lduw [%l0 + %g5], %l1 | ||
163 | #endif | ||
161 | cmp %l1, 0 | 164 | cmp %l1, 0 |
162 | 165 | ||
163 | /* mm/ultra.S:xcall_report_regs KNOWS about this load. */ | 166 | /* mm/ultra.S:xcall_report_regs KNOWS about this load. */ |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index fbdfed3798d8..ddbed3341a23 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -511,18 +511,6 @@ void __init setup_arch(char **cmdline_p) | |||
511 | conswitchp = &prom_con; | 511 | conswitchp = &prom_con; |
512 | #endif | 512 | #endif |
513 | 513 | ||
514 | #ifdef CONFIG_SMP | ||
515 | i = (unsigned long)&irq_stat[1] - (unsigned long)&irq_stat[0]; | ||
516 | if ((i == SMP_CACHE_BYTES) || (i == (2 * SMP_CACHE_BYTES))) { | ||
517 | extern unsigned int irqsz_patchme[1]; | ||
518 | irqsz_patchme[0] |= ((i == SMP_CACHE_BYTES) ? SMP_CACHE_BYTES_SHIFT : \ | ||
519 | SMP_CACHE_BYTES_SHIFT + 1); | ||
520 | flushi((long)&irqsz_patchme[0]); | ||
521 | } else { | ||
522 | prom_printf("Unexpected size of irq_stat[] elements\n"); | ||
523 | prom_halt(); | ||
524 | } | ||
525 | #endif | ||
526 | /* Work out if we are starfire early on */ | 514 | /* Work out if we are starfire early on */ |
527 | check_if_starfire(); | 515 | check_if_starfire(); |
528 | 516 | ||