asmlinkage int do_notify_resume()

in kernel/signal.c [299:325]


asmlinkage int do_notify_resume(struct pt_regs *regs)
{
	/*
	 * We want the common case to go fast, which is why we may in certain
	 * cases get here from kernel mode. Just return without doing anything
	 * if so.
	 */
	if (!user_mode(regs))
		return 0;

	if (test_thread_flag(TIF_SIGPENDING) ||
	    test_thread_flag(TIF_NOTIFY_SIGNAL)) {
		int restart = do_signal(regs);

		if (unlikely(restart)) {
			/*
			 * Restart without handlers.
			 * Deal with it without leaving
			 * the kernel space.
			 */
			return restart;
		}
	} else if (test_thread_flag(TIF_NOTIFY_RESUME))
		tracehook_notify_resume(regs);

	return 0;
}