diff options
Diffstat (limited to 'arch/x86/kernel/signal.c')
-rw-r--r-- | arch/x86/kernel/signal.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c index 6a44a76055ad..74fe6d86dc5d 100644 --- a/arch/x86/kernel/signal.c +++ b/arch/x86/kernel/signal.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/stddef.h> | 19 | #include <linux/stddef.h> |
20 | #include <linux/personality.h> | 20 | #include <linux/personality.h> |
21 | #include <linux/uaccess.h> | 21 | #include <linux/uaccess.h> |
22 | #include <linux/user-return-notifier.h> | ||
22 | 23 | ||
23 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
24 | #include <asm/ucontext.h> | 25 | #include <asm/ucontext.h> |
@@ -799,15 +800,6 @@ static void do_signal(struct pt_regs *regs) | |||
799 | 800 | ||
800 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); | 801 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); |
801 | if (signr > 0) { | 802 | if (signr > 0) { |
802 | /* | ||
803 | * Re-enable any watchpoints before delivering the | ||
804 | * signal to user space. The processor register will | ||
805 | * have been cleared if the watchpoint triggered | ||
806 | * inside the kernel. | ||
807 | */ | ||
808 | if (current->thread.debugreg7) | ||
809 | set_debugreg(current->thread.debugreg7, 7); | ||
810 | |||
811 | /* Whee! Actually deliver the signal. */ | 803 | /* Whee! Actually deliver the signal. */ |
812 | if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { | 804 | if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { |
813 | /* | 805 | /* |
@@ -872,6 +864,8 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags) | |||
872 | if (current->replacement_session_keyring) | 864 | if (current->replacement_session_keyring) |
873 | key_replace_session_keyring(); | 865 | key_replace_session_keyring(); |
874 | } | 866 | } |
867 | if (thread_info_flags & _TIF_USER_RETURN_NOTIFY) | ||
868 | fire_user_return_notifiers(); | ||
875 | 869 | ||
876 | #ifdef CONFIG_X86_32 | 870 | #ifdef CONFIG_X86_32 |
877 | clear_thread_flag(TIF_IRET); | 871 | clear_thread_flag(TIF_IRET); |