git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
arch
/
um
/
kernel
/
skas
/
trap_user.c
diff --git
a/arch/um/kernel/skas/trap_user.c
b/arch/um/kernel/skas/trap_user.c
index
0906f65
..
9659370
100644
(file)
--- a/
arch/um/kernel/skas/trap_user.c
+++ b/
arch/um/kernel/skas/trap_user.c
@@
-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
*/
* 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;
struct skas_regs *r;
struct signal_info *info;
int save_errno = errno;
+ int save_user;
r = &TASK_REGS(get_current())->skas;
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);
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;
(*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;
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;
regs->skas.is_user = 1;
regs->skas.fault_addr = 0;
regs->skas.fault_type = 0;