aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/skas/process_kern.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/kernel/skas/process_kern.c')
-rw-r--r--arch/um/kernel/skas/process_kern.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/um/kernel/skas/process_kern.c b/arch/um/kernel/skas/process_kern.c
index 5d096ea63b97..fc71ef295782 100644
--- a/arch/um/kernel/skas/process_kern.c
+++ b/arch/um/kernel/skas/process_kern.c
@@ -68,8 +68,11 @@ void new_thread_handler(int sig)
68 * 0 if it just exits 68 * 0 if it just exits
69 */ 69 */
70 n = run_kernel_thread(fn, arg, &current->thread.exec_buf); 70 n = run_kernel_thread(fn, arg, &current->thread.exec_buf);
71 if(n == 1) 71 if(n == 1){
72 /* Handle any immediate reschedules or signals */
73 interrupt_end();
72 userspace(&current->thread.regs.regs); 74 userspace(&current->thread.regs.regs);
75 }
73 else do_exit(0); 76 else do_exit(0);
74} 77}
75 78
@@ -83,10 +86,6 @@ void release_thread_skas(struct task_struct *task)
83{ 86{
84} 87}
85 88
86void exit_thread_skas(void)
87{
88}
89
90void fork_handler(int sig) 89void fork_handler(int sig)
91{ 90{
92 change_sig(SIGUSR1, 1); 91 change_sig(SIGUSR1, 1);
@@ -100,6 +99,8 @@ void fork_handler(int sig)
100 schedule_tail(current->thread.prev_sched); 99 schedule_tail(current->thread.prev_sched);
101 current->thread.prev_sched = NULL; 100 current->thread.prev_sched = NULL;
102 101
102 /* Handle any immediate reschedules or signals */
103 interrupt_end();
103 userspace(&current->thread.regs.regs); 104 userspace(&current->thread.regs.regs);
104} 105}
105 106