vserver 1.9.3
[linux-2.6.git] / arch / um / kernel / skas / trap_user.c
index 0906f65..9659370 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
+ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
  * Licensed under the GPL
  */
 
@@ -19,8 +19,10 @@ void sig_handler_common_skas(int sig, void *sc_ptr)
        struct skas_regs *r;
        struct signal_info *info;
        int save_errno = errno;
+       int save_user;
 
        r = &TASK_REGS(get_current())->skas;
+       save_user = r->is_user;
        r->is_user = 0;
        r->fault_addr = SC_FAULT_ADDR(sc);
        r->fault_type = SC_FAULT_TYPE(sc);
@@ -33,16 +35,13 @@ void sig_handler_common_skas(int sig, void *sc_ptr)
        (*info->handler)(sig, (union uml_pt_regs *) r);
 
        errno = save_errno;
+       r->is_user = save_user;
 }
 
-extern int missed_ticks[];
-
 void user_signal(int sig, union uml_pt_regs *regs)
 {
        struct signal_info *info;
 
-       if(sig == SIGVTALRM)
-               missed_ticks[cpu()]++;
        regs->skas.is_user = 1;
        regs->skas.fault_addr = 0;
        regs->skas.fault_type = 0;