Commit b8a42095 authored by Al Viro's avatar Al Viro Committed by Richard Weinberger

um: pull interrupt_end() into userspace()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 1bfa2317
...@@ -151,12 +151,10 @@ void new_thread_handler(void) ...@@ -151,12 +151,10 @@ void new_thread_handler(void)
* 0 if it just exits * 0 if it just exits
*/ */
n = run_kernel_thread(fn, arg, &current->thread.exec_buf); n = run_kernel_thread(fn, arg, &current->thread.exec_buf);
if (n == 1) { if (n == 1)
/* Handle any immediate reschedules or signals */
interrupt_end();
userspace(&current->thread.regs.regs); userspace(&current->thread.regs.regs);
} else
else do_exit(0); do_exit(0);
} }
/* Called magically, see new_thread_handler above */ /* Called magically, see new_thread_handler above */
...@@ -175,9 +173,6 @@ void fork_handler(void) ...@@ -175,9 +173,6 @@ void fork_handler(void)
current->thread.prev_sched = NULL; current->thread.prev_sched = NULL;
/* Handle any immediate reschedules or signals */
interrupt_end();
userspace(&current->thread.regs.regs); userspace(&current->thread.regs.regs);
} }
......
...@@ -347,6 +347,9 @@ void userspace(struct uml_pt_regs *regs) ...@@ -347,6 +347,9 @@ void userspace(struct uml_pt_regs *regs)
/* To prevent races if using_sysemu changes under us.*/ /* To prevent races if using_sysemu changes under us.*/
int local_using_sysemu; int local_using_sysemu;
/* Handle any immediate reschedules or signals */
interrupt_end();
if (getitimer(ITIMER_VIRTUAL, &timer)) if (getitimer(ITIMER_VIRTUAL, &timer))
printk(UM_KERN_ERR "Failed to get itimer, errno = %d\n", errno); printk(UM_KERN_ERR "Failed to get itimer, errno = %d\n", errno);
nsecs = timer.it_value.tv_sec * UM_NSEC_PER_SEC + nsecs = timer.it_value.tv_sec * UM_NSEC_PER_SEC +
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment