diff -Naur -X exclude-files ac_cur/arch/um/drivers/ethertap_user.c ac/arch/um/drivers/ethertap_user.c --- ac_cur/arch/um/drivers/ethertap_user.c Mon Jul 16 11:03:58 2001 +++ ac/arch/um/drivers/ethertap_user.c Mon Jul 16 12:00:10 2001 @@ -140,7 +140,6 @@ { struct ethertap_data *pri = data; - printk("Closing down ethertap\n"); close(fd); shutdown(pri->helper_fd, SHUT_RDWR); } diff -Naur -X exclude-files ac_cur/arch/um/drivers/mconsole_kern.c ac/arch/um/drivers/mconsole_kern.c --- ac_cur/arch/um/drivers/mconsole_kern.c Mon Jul 16 11:05:05 2001 +++ ac/arch/um/drivers/mconsole_kern.c Mon Jul 16 12:00:10 2001 @@ -49,9 +49,9 @@ list); list_del(&req->list); done = list_empty(&mc_requests); + restore_flags(flags); handle_request(&req->request); kfree(req); - restore_flags(flags); } while(!done); } diff -Naur -X exclude-files ac_cur/arch/um/drivers/net_kern.c ac/arch/um/drivers/net_kern.c --- ac_cur/arch/um/drivers/net_kern.c Mon Jul 16 11:03:58 2001 +++ ac/arch/um/drivers/net_kern.c Mon Jul 16 12:00:10 2001 @@ -181,7 +181,7 @@ netif_stop_queue(dev); spin_lock(&lp->lock); - free_irq_fd(dev); + free_irq(dev->irq, dev); (*lp->close)(lp->fd, &lp->user); lp->fd = -1; list_del(&lp->list); diff -Naur -X exclude-files ac_cur/arch/um/include/mconsole.h ac/arch/um/include/mconsole.h --- ac_cur/arch/um/include/mconsole.h Mon Jul 16 11:04:49 2001 +++ ac/arch/um/include/mconsole.h Mon Jul 16 12:00:10 2001 @@ -23,18 +23,6 @@ void (*handler)(struct mconsole_request *req); }; -struct config_command -{ - char *command; - int (*handler)(char *args); -}; - -struct remove_command -{ - char *command; - int (*handler)(void); -}; - extern char socket_name[]; extern int unlink_socket(void); diff -Naur -X exclude-files ac_cur/arch/um/include/mconsole_kern.h ac/arch/um/include/mconsole_kern.h --- ac_cur/arch/um/include/mconsole_kern.h Mon Jul 16 11:05:05 2001 +++ ac/arch/um/include/mconsole_kern.h Mon Jul 16 12:00:10 2001 @@ -21,7 +21,17 @@ int (*remove)(char *); }; +#ifdef CONFIG_MCONSOLE + extern void mconsole_register_dev(struct mc_device *new); + +#else + +static inline void mconsole_register_dev(struct mc_device *new) +{ +} + +#endif #endif diff -Naur -X exclude-files ac_cur/arch/um/kernel/process.c ac/arch/um/kernel/process.c --- ac_cur/arch/um/kernel/process.c Mon Jul 16 11:03:59 2001 +++ ac/arch/um/kernel/process.c Mon Jul 16 12:00:10 2001 @@ -89,6 +89,10 @@ SIGUSR1, SIGIO, -1); set_handler(SIGFPE, (__sighandler_t) sig_handler, flags, SIGUSR1, SIGIO, -1); + set_handler(SIGILL, (__sighandler_t) sig_handler, flags, + SIGUSR1, SIGIO, -1); + set_handler(SIGBUS, (__sighandler_t) sig_handler, flags, + SIGUSR1, SIGIO, -1); set_handler(SIGUSR2, process_stack_handler, SA_NODEFER, SIGUSR1, -1); change_sig(SIGUSR2, 1); if(usr1_handler) set_handler(SIGUSR1, usr1_handler, flags, -1); diff -Naur -X exclude-files ac_cur/arch/um/kernel/reboot.c ac/arch/um/kernel/reboot.c --- ac_cur/arch/um/kernel/reboot.c Mon Jul 16 11:03:59 2001 +++ ac/arch/um/kernel/reboot.c Mon Jul 16 12:00:10 2001 @@ -17,7 +17,8 @@ for_each_task(p){ if(p->thread.extern_pid != me) kill_pid(p->thread.extern_pid); } - kill_pid(init_task.thread.extern_pid); + if(init_task.thread.extern_pid != me) + kill_pid(init_task.thread.extern_pid); } void machine_restart(char * __unused) diff -Naur -X exclude-files ac_cur/arch/um/kernel/time_kern.c ac/arch/um/kernel/time_kern.c --- ac_cur/arch/um/kernel/time_kern.c Mon Jul 16 11:03:59 2001 +++ ac/arch/um/kernel/time_kern.c Mon Jul 16 12:00:10 2001 @@ -33,6 +33,7 @@ { int ticks = missed_ticks; + if(!timer_irq_inited) return; missed_ticks = 0; while(ticks--) do_IRQ(TIMER_IRQ, user_mode); } diff -Naur -X exclude-files ac_cur/arch/um/kernel/trap_kern.c ac/arch/um/kernel/trap_kern.c --- ac_cur/arch/um/kernel/trap_kern.c Mon Jul 16 11:05:05 2001 +++ ac/arch/um/kernel/trap_kern.c Mon Jul 16 12:00:10 2001 @@ -162,7 +162,7 @@ "errno = %d\n", errno); gdb_pid = -1; } - else kill(debugger_pid, SIGKILL); + else ptrace(PTRACE_KILL, debugger_pid, 0, 0); debugger_pid = -1; } close_chan_pair(&gdb_chan); diff -Naur -X exclude-files ac_cur/arch/um/kernel/trap_user.c ac/arch/um/kernel/trap_user.c --- ac_cur/arch/um/kernel/trap_user.c Mon Jul 16 11:04:49 2001 +++ ac/arch/um/kernel/trap_user.c Mon Jul 16 12:00:10 2001 @@ -220,6 +220,8 @@ case SIGALRM: case SIGVTALRM: case SIGFPE: + case SIGBUS: + case SIGILL: if(!tracing && (debugger_pid != -1)){ child_signal(pid, status); continue; @@ -232,8 +234,6 @@ case SIGCHLD: sig = 0; break; - case SIGBUS: - case SIGILL: default: if(debugger_pid != -1){ child_signal(pid, status); @@ -300,6 +300,8 @@ static void (*handlers[])(int, void *, int) = { [ SIGTRAP ] relay_signal, [ SIGFPE ] relay_signal, + [ SIGILL ] relay_signal, + [ SIGBUS ] relay_signal, [ SIGSEGV] segv_handler, [ SIGIO ] sigio_handler, [ SIGVTALRM ] timer_handler, diff -Naur -X exclude-files ac_cur/arch/um/kernel/user_syms.c ac/arch/um/kernel/user_syms.c --- ac_cur/arch/um/kernel/user_syms.c Mon Jul 16 11:05:00 2001 +++ ac/arch/um/kernel/user_syms.c Mon Jul 16 12:00:10 2001 @@ -99,4 +99,7 @@ EXPORT_SYMBOL(memcpy); EXPORT_SYMBOL(getuid); +EXPORT_SYMBOL(memset); +EXPORT_SYMBOL(strstr); + EXPORT_SYMBOL(find_iomem);