sh: Kill off sh64's hand-rolled syscall tracer.
[sfrench/cifs-2.6.git] / arch / sh / lib64 / dbg.c
index 2fb8eaf6de60a01c6bbaae80d7839b0a2d1778bc..25f2481bd89ed53dc4784368f798a02876464c1f 100644 (file)
@@ -135,140 +135,6 @@ void print_itlb(void)
            (" =============================================================\n");
 }
 
-/* ======================================================================= */
-
-#ifdef CONFIG_POOR_MANS_STRACE
-
-#include "syscalltab.h"
-
-struct ring_node {
-       int evt;
-       int ret_addr;
-       int event;
-       int tra;
-       int pid;
-       unsigned long sp;
-       unsigned long pc;
-};
-
-static struct ring_node event_ring[16];
-static int event_ptr = 0;
-
-struct stored_syscall_data {
-       int pid;
-       int syscall_number;
-};
-
-#define N_STORED_SYSCALLS 16
-
-static struct stored_syscall_data stored_syscalls[N_STORED_SYSCALLS];
-static int syscall_next=0;
-static int syscall_next_print=0;
-
-void evt_debug(int evt, int ret_addr, int event, int tra, struct pt_regs *regs)
-{
-       int syscallno = tra & 0xff;
-       unsigned long sp;
-       unsigned long stack_bottom;
-       int pid;
-       struct ring_node *rr;
-
-       pid = current->pid;
-       stack_bottom = (unsigned long) task_stack_page(current);
-       asm volatile("ori r15, 0, %0" : "=r" (sp));
-       rr = event_ring + event_ptr;
-       rr->evt = evt;
-       rr->ret_addr = ret_addr;
-       rr->event = event;
-       rr->tra = tra;
-       rr->pid = pid;
-       rr->sp = sp;
-       rr->pc = regs->pc;
-
-       if (sp < stack_bottom + 3092) {
-               int i, j;
-               printk("evt_debug : stack underflow report\n");
-               for (j=0, i = event_ptr; j<16; j++) {
-                       rr = event_ring + i;
-                       printk("evt=%08x event=%08x tra=%08x pid=%5d sp=%08lx pc=%08lx\n",
-                               rr->evt, rr->event, rr->tra, rr->pid, rr->sp, rr->pc);
-                       i--;
-                       i &= 15;
-               }
-               panic("STACK UNDERFLOW\n");
-       }
-
-       event_ptr = (event_ptr + 1) & 15;
-
-       if ((event == 2) && (evt == 0x160)) {
-               if (syscallno < NUM_SYSCALL_INFO_ENTRIES) {
-                       /* Store the syscall information to print later.  We
-                        * can't print this now - currently we're running with
-                        * SR.BL=1, so we can't take a tlbmiss (which could occur
-                        * in the console drivers under printk).
-                        *
-                        * Just overwrite old entries on ring overflow - this
-                        * is only for last-hope debugging. */
-                       stored_syscalls[syscall_next].pid = current->pid;
-                       stored_syscalls[syscall_next].syscall_number = syscallno;
-                       syscall_next++;
-                       syscall_next &= (N_STORED_SYSCALLS - 1);
-               }
-       }
-}
-
-static void drain_syscalls(void) {
-       while (syscall_next_print != syscall_next) {
-               printk("Task %d: %s()\n",
-                       stored_syscalls[syscall_next_print].pid,
-                       syscall_info_table[stored_syscalls[syscall_next_print].syscall_number].name);
-                       syscall_next_print++;
-                       syscall_next_print &= (N_STORED_SYSCALLS - 1);
-       }
-}
-
-void evt_debug2(unsigned int ret)
-{
-       drain_syscalls();
-       printk("Task %d: syscall returns %08x\n", current->pid, ret);
-}
-
-void evt_debug_ret_from_irq(struct pt_regs *regs)
-{
-       int pid;
-       struct ring_node *rr;
-
-       pid = current->pid;
-       rr = event_ring + event_ptr;
-       rr->evt = 0xffff;
-       rr->ret_addr = 0;
-       rr->event = 0;
-       rr->tra = 0;
-       rr->pid = pid;
-       rr->pc = regs->pc;
-       event_ptr = (event_ptr + 1) & 15;
-}
-
-void evt_debug_ret_from_exc(struct pt_regs *regs)
-{
-       int pid;
-       struct ring_node *rr;
-
-       pid = current->pid;
-       rr = event_ring + event_ptr;
-       rr->evt = 0xfffe;
-       rr->ret_addr = 0;
-       rr->event = 0;
-       rr->tra = 0;
-       rr->pid = pid;
-       rr->pc = regs->pc;
-       event_ptr = (event_ptr + 1) & 15;
-}
-
-#endif /* CONFIG_POOR_MANS_STRACE */
-
-/* ======================================================================= */
-
 void show_excp_regs(char *from, int trapnr, int signr, struct pt_regs *regs)
 {