summaryrefslogtreecommitdiffstats
path: root/arch/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha')
-rw-r--r--arch/alpha/kernel/alpha_ksyms.c3
-rw-r--r--arch/alpha/kernel/entry.S4
-rw-r--r--arch/alpha/kernel/irq_alpha.c4
-rw-r--r--arch/alpha/kernel/irq_smp.c8
-rw-r--r--arch/alpha/kernel/smp.c4
5 files changed, 8 insertions, 15 deletions
diff --git a/arch/alpha/kernel/alpha_ksyms.c b/arch/alpha/kernel/alpha_ksyms.c
index 078aa7d3d..4ac2e8b0d 100644
--- a/arch/alpha/kernel/alpha_ksyms.c
+++ b/arch/alpha/kernel/alpha_ksyms.c
@@ -199,9 +199,6 @@ EXPORT_SYMBOL(debug_spin_trylock);
EXPORT_SYMBOL(write_lock);
EXPORT_SYMBOL(read_lock);
#endif
-#else /* CONFIG_SMP */
-EXPORT_SYMBOL(__local_bh_count);
-EXPORT_SYMBOL(__local_irq_count);
#endif /* CONFIG_SMP */
EXPORT_SYMBOL(rtc_lock);
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index 253b8d6c1..ac80051ed 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -577,10 +577,10 @@ entSys:
ret_from_sys_call:
cmovne $26,0,$19 /* $19 = 0 => non-restartable */
ldl $3,TASK_PROCESSOR($8)
- lda $4,softirq_state
+ lda $4,irq_stat /* softirq_active */
sll $3,L1_CACHE_SHIFT,$3
addq $3,$4,$4
- ldq $4,0($4)
+ ldq $4,0($4) /* softirq_active[32] + softirq_mask[32] */
sll $4,32,$3
and $4,$3,$4
bne $4,handle_softirq
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index 066af7e1e..59f102496 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -14,11 +14,7 @@
#include "proto.h"
#include "irq_impl.h"
-/* Only uniprocessor needs this IRQ/BH locking depth, on SMP it lives
- in the per-cpu structure for cache reasons. */
#ifndef CONFIG_SMP
-int __local_irq_count;
-int __local_bh_count;
unsigned long __irq_attempt[NR_IRQS];
#endif
diff --git a/arch/alpha/kernel/irq_smp.c b/arch/alpha/kernel/irq_smp.c
index 90a3c30b2..9022228a0 100644
--- a/arch/alpha/kernel/irq_smp.c
+++ b/arch/alpha/kernel/irq_smp.c
@@ -40,13 +40,13 @@ show(char * str, void *where)
printk("\n%s, CPU %d: %p\n", str, cpu, where);
printk("irq: %d [%d %d]\n",
irqs_running(),
- cpu_data[0].irq_count,
- cpu_data[1].irq_count);
+ local_irq_count(0),
+ local_irq_count(1));
printk("bh: %d [%d %d]\n",
spin_is_locked(&global_bh_lock) ? 1 : 0,
- cpu_data[0].bh_count,
- cpu_data[1].bh_count);
+ local_bh_count(0),
+ local_bh_count(1));
#if 0
stack = (unsigned long *) &str;
for (i = 40; i ; i--) {
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index e51ff9d18..4f7a04b3f 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -108,8 +108,8 @@ smp_store_cpu_info(int cpuid)
cpu_data[cpuid].loops_per_sec = loops_per_sec;
cpu_data[cpuid].last_asn
= (cpuid << WIDTH_HARDWARE_ASN) + ASN_FIRST_VERSION;
- cpu_data[cpuid].irq_count = 0;
- cpu_data[cpuid].bh_count = 0;
+ local_irq_count(cpuid) = 0;
+ local_bh_count(cpuid) = 0;
}
/*