Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

um: pull interrupt_end() into userspace()

parent 1bfa2317
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -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 */
@@ -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);
}

+3 −0
Original line number Diff line number Diff line
@@ -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 +