Update of /cvsroot/linux-mips/linux/arch/mips/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv29100/arch/mips/kernel
Modified Files:
irq.c proc.c smp.c
Log Message:
Updated Mips 64 to OSS tree.
Index: irq.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irq.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- irq.c 18 Mar 2002 22:38:02 -0000 1.11
+++ irq.c 30 May 2002 20:42:08 -0000 1.12
@@ -76,13 +76,13 @@
int get_irq_list(char *buf)
{
+ int i, j;
struct irqaction * action;
char *p = buf;
- int i;
p += sprintf(p, " ");
- for (i=0; i < 1 /*smp_num_cpus*/; i++)
- p += sprintf(p, "CPU%d ", i);
+ for (j=0; j<smp_num_cpus; j++)
+ p += sprintf(p, "CPU%d ",j);
*p++ = '\n';
for (i = 0 ; i < NR_IRQS ; i++) {
@@ -90,7 +90,13 @@
if (!action)
continue;
p += sprintf(p, "%3d: ",i);
+#ifndef CONFIG_SMP
p += sprintf(p, "%10u ", kstat_irqs(i));
+#else
+ for (j = 0; j < smp_num_cpus; j++)
+ p += sprintf(p, "%10u ",
+ kstat.irqs[cpu_logical_map(j)][i]);
+#endif
p += sprintf(p, " %14s", irq_desc[i].handler->typename);
p += sprintf(p, " %s", action->name);
@@ -98,7 +104,8 @@
p += sprintf(p, ", %s", action->name);
*p++ = '\n';
}
- p += sprintf(p, "ERR: %10lu\n", atomic_read(&irq_err_count));
+ p += sprintf(p, "\n");
+ p += sprintf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
return p - buf;
}
Index: proc.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/proc.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- proc.c 29 Apr 2002 23:05:11 -0000 1.17
+++ proc.c 30 May 2002 20:42:08 -0000 1.18
@@ -59,17 +59,15 @@
[CPU_TX3912] "TX3912",
[CPU_TX3922] "TX3922",
[CPU_TX3927] "TX3927",
- [CPU_AU1000] "Au1000",
+ [CPU_AU1000] "Au1000",
[CPU_AU1500] "Au1500",
- [CPU_AU1100] "Au1100",
[CPU_4KEC] "MIPS 4KEc",
[CPU_4KSC] "MIPS 4KSc",
[CPU_VR41XX] "NEC Vr41xx",
[CPU_R5500] "R5500",
[CPU_TX49XX] "TX49xx",
- [CPU_TX39XX] "TX39xx",
- [CPU_R5900] "R5900",
- [CPU_RC32300] "RC32300"
+ [CPU_TX39XX] "TX39xx",
+ [CPU_20KC] "MIPS 20Kc"
};
@@ -81,7 +79,7 @@
char fmt [64];
#ifdef CONFIG_SMP
- if (!(cpu_online_map & (1<<n)))
+ if (!CPUMASK_TSTB(cpu_online_map, n))
return 0;
#endif
Index: smp.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/smp.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- smp.c 24 Apr 2002 17:33:03 -0000 1.17
+++ smp.c 30 May 2002 20:42:08 -0000 1.18
@@ -18,7 +18,6 @@
* Copyright (C) 2000, 2001 Silicon Graphics, Inc.
* Copyright (C) 2000, 2001 Broadcom Corporation
*/
-#include <linux/config.h>
#include <linux/cache.h>
#include <linux/init.h>
#include <linux/spinlock.h>
@@ -43,8 +42,11 @@
/* Ze Big Kernel Lock! */
spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
int smp_threads_ready;
+atomic_t smp_commenced = ATOMIC_INIT(0);
int smp_num_cpus = 1; /* Number that came online. */
cpumask_t cpu_online_map; /* Bitmask of currently online CPUs */
+int __cpu_number_map[NR_CPUS];
+int __cpu_logical_map[NR_CPUS];
struct cpuinfo_mips cpu_data[NR_CPUS];
void (*volatile smp_cpu0_finalize)(void);
@@ -107,7 +109,8 @@
void __init smp_commence(void)
{
- /* Not sure what to do here yet */
+ wmb();
+ atomic_set(&smp_commenced, 1);
}
void smp_send_reschedule(int cpu)
|