irq: introduce nr_irqs
[safe/jmp/linux-2.6] / arch / sparc / kernel / traps.c
index 527687a..2b7d506 100644 (file)
@@ -1,7 +1,7 @@
-/* $Id: traps.c,v 1.64 2000/09/03 15:00:49 anton Exp $
+/*
  * arch/sparc/kernel/traps.c
  *
- * Copyright 1995 David S. Miller (davem@caip.rutgers.edu)
+ * Copyright 1995, 2008 David S. Miller (davem@davemloft.net)
  * Copyright 2000 Jakub Jelinek (jakub@redhat.com)
  */
 
 
 #include <linux/sched.h>  /* for jiffies */
 #include <linux/kernel.h>
-#include <linux/kallsyms.h>
 #include <linux/signal.h>
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
+#include <linux/kdebug.h>
 
 #include <asm/delay.h>
 #include <asm/system.h>
@@ -22,7 +22,6 @@
 #include <asm/oplib.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
-#include <asm/kdebug.h>
 #include <asm/unistd.h>
 #include <asm/traps.h>
 
@@ -33,12 +32,9 @@ struct trap_trace_entry {
        unsigned long type;
 };
 
-int trap_curbuf = 0;
-struct trap_trace_entry trapbuf[1024];
-
 void syscall_trace_entry(struct pt_regs *regs)
 {
-       printk("%s[%d]: ", current->comm, current->pid);
+       printk("%s[%d]: ", current->comm, task_pid_nr(current));
        printk("scall<%d> (could be %d)\n", (int) regs->u_regs[UREG_G1],
               (int) regs->u_regs[UREG_I0]);
 }
@@ -47,23 +43,6 @@ void syscall_trace_exit(struct pt_regs *regs)
 {
 }
 
-void sun4m_nmi(struct pt_regs *regs)
-{
-       unsigned long afsr, afar;
-
-       printk("Aieee: sun4m NMI received!\n");
-       /* XXX HyperSparc hack XXX */
-       __asm__ __volatile__("mov 0x500, %%g1\n\t"
-                            "lda [%%g1] 0x4, %0\n\t"
-                            "mov 0x600, %%g1\n\t"
-                            "lda [%%g1] 0x4, %1\n\t" :
-                            "=r" (afsr), "=r" (afar));
-       printk("afsr=%08lx afar=%08lx\n", afsr, afar);
-       printk("you lose buddy boy...\n");
-       show_regs(regs);
-       prom_halt();
-}
-
 void sun4d_nmi(struct pt_regs *regs)
 {
        printk("Aieee: sun4d NMI received!\n");
@@ -72,7 +51,7 @@ void sun4d_nmi(struct pt_regs *regs)
        prom_halt();
 }
 
-void instruction_dump (unsigned long *pc)
+static void instruction_dump(unsigned long *pc)
 {
        int i;
        
@@ -99,8 +78,9 @@ void die_if_kernel(char *str, struct pt_regs *regs)
 "              /_| \\__/ |_\\\n"
 "                 \\__U_/\n");
 
-       printk("%s(%d): %s [#%d]\n", current->comm, current->pid, str, ++die_counter);
+       printk("%s(%d): %s [#%d]\n", current->comm, task_pid_nr(current), str, ++die_counter);
        show_regs(regs);
+       add_taint(TAINT_DIE);
 
        __SAVE; __SAVE; __SAVE; __SAVE;
        __SAVE; __SAVE; __SAVE; __SAVE;
@@ -118,8 +98,8 @@ void die_if_kernel(char *str, struct pt_regs *regs)
                      count++ < 30                              &&
                       (((unsigned long) rw) >= PAGE_OFFSET)    &&
                      !(((unsigned long) rw) & 0x7)) {
-                       printk("Caller[%08lx]", rw->ins[7]);
-                       print_symbol(": %s\n", rw->ins[7]);
+                       printk("Caller[%08lx]: %pS\n", rw->ins[7],
+                              (void *) rw->ins[7]);
                        rw = (struct reg_window *)rw->ins[6];
                }
        }
@@ -478,10 +458,6 @@ void do_BUG(const char *file, int line)
 
 extern void sparc_cpu_startup(void);
 
-int linux_smp_still_initting;
-unsigned int thiscpus_tbr;
-int thiscpus_mid;
-
 void trap_init(void)
 {
        extern void thread_info_offsets_are_bolixed_pete(void);