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
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
um
/
kernel
/
tt
/
exec_kern.c
diff --git
a/arch/um/kernel/tt/exec_kern.c
b/arch/um/kernel/tt/exec_kern.c
index
afd9471
..
ad66df1
100644
(file)
--- a/
arch/um/kernel/tt/exec_kern.c
+++ b/
arch/um/kernel/tt/exec_kern.c
@@
-13,15
+13,15
@@
#include "user_util.h"
#include "kern_util.h"
#include "irq_user.h"
#include "user_util.h"
#include "kern_util.h"
#include "irq_user.h"
-#include "time_user.h"
#include "mem_user.h"
#include "os.h"
#include "tlb.h"
#include "mem_user.h"
#include "os.h"
#include "tlb.h"
+#include "mode.h"
static int exec_tramp(void *sig_stack)
{
init_new_thread_stack(sig_stack, NULL);
static int exec_tramp(void *sig_stack)
{
init_new_thread_stack(sig_stack, NULL);
- init_new_thread_signals(
1
);
+ init_new_thread_signals();
os_stop_process(os_getpid());
return(0);
}
os_stop_process(os_getpid());
return(0);
}
@@
-38,8
+38,7
@@
void flush_thread_tt(void)
do_exit(SIGKILL);
}
do_exit(SIGKILL);
}
- new_pid = start_fork_tramp((void *) current->thread.kernel_stack,
- stack, 0, exec_tramp);
+ new_pid = start_fork_tramp(task_stack_page(current), stack, 0, exec_tramp);
if(new_pid < 0){
printk(KERN_ERR
"flush_thread : new thread failed, errno = %d\n",
if(new_pid < 0){
printk(KERN_ERR
"flush_thread : new thread failed, errno = %d\n",
@@
-47,17
+46,19
@@
void flush_thread_tt(void)
do_exit(SIGKILL);
}
do_exit(SIGKILL);
}
- if(current
->thread_info
->cpu == 0)
+ if(current
_thread
->cpu == 0)
forward_interrupts(new_pid);
current->thread.request.op = OP_EXEC;
current->thread.request.u.exec.pid = new_pid;
forward_interrupts(new_pid);
current->thread.request.op = OP_EXEC;
current->thread.request.u.exec.pid = new_pid;
- unprotect_stack((unsigned long) current
->thread_info
);
+ unprotect_stack((unsigned long) current
_thread
);
os_usr1_process(os_getpid());
os_usr1_process(os_getpid());
+ change_sig(SIGUSR1, 1);
+ change_sig(SIGUSR1, 0);
enable_timer();
free_page(stack);
protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 1, 0, 1);
enable_timer();
free_page(stack);
protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 1, 0, 1);
- task_protections((unsigned long) current
->thread_info
);
+ task_protections((unsigned long) current
_thread
);
force_flush_all();
unblock_signals();
}
force_flush_all();
unblock_signals();
}