Skip to content

Commit

Permalink
um: pull interrupt_end() into userspace()
Browse files Browse the repository at this point in the history
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
  • Loading branch information
Al Viro authored and Richard Weinberger committed Aug 1, 2012
1 parent 1bfa231 commit b8a4209
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
11 changes: 3 additions & 8 deletions arch/um/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,12 +151,10 @@ void new_thread_handler(void)
* 0 if it just exits
*/
n = run_kernel_thread(fn, arg, &current->thread.exec_buf);
if (n == 1) {
/* Handle any immediate reschedules or signals */
interrupt_end();
if (n == 1)
userspace(&current->thread.regs.regs);
}
else do_exit(0);
else
do_exit(0);
}

/* Called magically, see new_thread_handler above */
Expand All @@ -175,9 +173,6 @@ void fork_handler(void)

current->thread.prev_sched = NULL;

/* Handle any immediate reschedules or signals */
interrupt_end();

userspace(&current->thread.regs.regs);
}

Expand Down
3 changes: 3 additions & 0 deletions arch/um/os-Linux/skas/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,9 @@ void userspace(struct uml_pt_regs *regs)
/* To prevent races if using_sysemu changes under us.*/
int local_using_sysemu;

/* Handle any immediate reschedules or signals */
interrupt_end();

if (getitimer(ITIMER_VIRTUAL, &timer))
printk(UM_KERN_ERR "Failed to get itimer, errno = %d\n", errno);
nsecs = timer.it_value.tv_sec * UM_NSEC_PER_SEC +
Expand Down

0 comments on commit b8a4209

Please sign in to comment.