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 --- |