signal.c (d033a308d81ec83908760a15a841c2bd0d5e0ea3) signal.c (91d1aa43d30505b0b825db8898ffc80a8eca96c7)
1/*
2 * Copyright (C) 1991, 1992 Linus Torvalds
3 * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs
4 *
5 * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson
6 * 2000-06-20 Pentium III FXSR, SSE support by Gareth Hughes
7 * 2000-2002 x86-64 support by Andi Kleen
8 */

--- 8 unchanged lines hidden (view full) ---

17#include <linux/wait.h>
18#include <linux/tracehook.h>
19#include <linux/unistd.h>
20#include <linux/stddef.h>
21#include <linux/personality.h>
22#include <linux/uaccess.h>
23#include <linux/user-return-notifier.h>
24#include <linux/uprobes.h>
1/*
2 * Copyright (C) 1991, 1992 Linus Torvalds
3 * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs
4 *
5 * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson
6 * 2000-06-20 Pentium III FXSR, SSE support by Gareth Hughes
7 * 2000-2002 x86-64 support by Andi Kleen
8 */

--- 8 unchanged lines hidden (view full) ---

17#include <linux/wait.h>
18#include <linux/tracehook.h>
19#include <linux/unistd.h>
20#include <linux/stddef.h>
21#include <linux/personality.h>
22#include <linux/uaccess.h>
23#include <linux/user-return-notifier.h>
24#include <linux/uprobes.h>
25#include <linux/context_tracking.h>
25
26#include <asm/processor.h>
27#include <asm/ucontext.h>
28#include <asm/i387.h>
29#include <asm/fpu-internal.h>
30#include <asm/vdso.h>
31#include <asm/mce.h>
32#include <asm/sighandling.h>

--- 778 unchanged lines hidden (view full) ---

811
812/*
813 * notification of userspace execution resumption
814 * - triggered by the TIF_WORK_MASK flags
815 */
816void
817do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
818{
26
27#include <asm/processor.h>
28#include <asm/ucontext.h>
29#include <asm/i387.h>
30#include <asm/fpu-internal.h>
31#include <asm/vdso.h>
32#include <asm/mce.h>
33#include <asm/sighandling.h>

--- 778 unchanged lines hidden (view full) ---

812
813/*
814 * notification of userspace execution resumption
815 * - triggered by the TIF_WORK_MASK flags
816 */
817void
818do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
819{
819 rcu_user_exit();
820 user_exit();
820
821#ifdef CONFIG_X86_MCE
822 /* notify userspace of pending MCEs */
823 if (thread_info_flags & _TIF_MCE_NOTIFY)
824 mce_notify_process();
825#endif /* CONFIG_X86_64 && CONFIG_X86_MCE */
826
821
822#ifdef CONFIG_X86_MCE
823 /* notify userspace of pending MCEs */
824 if (thread_info_flags & _TIF_MCE_NOTIFY)
825 mce_notify_process();
826#endif /* CONFIG_X86_64 && CONFIG_X86_MCE */
827
827 if (thread_info_flags & _TIF_UPROBE)
828 if (thread_info_flags & _TIF_UPROBE) {
829 clear_thread_flag(TIF_UPROBE);
828 uprobe_notify_resume(regs);
830 uprobe_notify_resume(regs);
831 }
829
830 /* deal with pending signal delivery */
831 if (thread_info_flags & _TIF_SIGPENDING)
832 do_signal(regs);
833
834 if (thread_info_flags & _TIF_NOTIFY_RESUME) {
835 clear_thread_flag(TIF_NOTIFY_RESUME);
836 tracehook_notify_resume(regs);
837 }
838 if (thread_info_flags & _TIF_USER_RETURN_NOTIFY)
839 fire_user_return_notifiers();
840
832
833 /* deal with pending signal delivery */
834 if (thread_info_flags & _TIF_SIGPENDING)
835 do_signal(regs);
836
837 if (thread_info_flags & _TIF_NOTIFY_RESUME) {
838 clear_thread_flag(TIF_NOTIFY_RESUME);
839 tracehook_notify_resume(regs);
840 }
841 if (thread_info_flags & _TIF_USER_RETURN_NOTIFY)
842 fire_user_return_notifiers();
843
841 rcu_user_enter();
844 user_enter();
842}
843
844void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
845{
846 struct task_struct *me = current;
847
848 if (show_unhandled_signals && printk_ratelimit()) {
849 printk("%s"

--- 42 unchanged lines hidden ---
845}
846
847void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
848{
849 struct task_struct *me = current;
850
851 if (show_unhandled_signals && printk_ratelimit()) {
852 printk("%s"

--- 42 unchanged lines hidden ---