aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/signal_64.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c
index bf77d4789a2d..5a5fbc3b1eea 100644
--- a/arch/x86/kernel/signal_64.c
+++ b/arch/x86/kernel/signal_64.c
@@ -410,7 +410,8 @@ static void do_signal(struct pt_regs *regs)
410 410
411 signr = get_signal_to_deliver(&info, &ka, regs, NULL); 411 signr = get_signal_to_deliver(&info, &ka, regs, NULL);
412 if (signr > 0) { 412 if (signr > 0) {
413 /* Re-enable any watchpoints before delivering the 413 /*
414 * Re-enable any watchpoints before delivering the
414 * signal to user space. The processor register will 415 * signal to user space. The processor register will
415 * have been cleared if the watchpoint triggered 416 * have been cleared if the watchpoint triggered
416 * inside the kernel. 417 * inside the kernel.
@@ -418,7 +419,7 @@ static void do_signal(struct pt_regs *regs)
418 if (current->thread.debugreg7) 419 if (current->thread.debugreg7)
419 set_debugreg(current->thread.debugreg7, 7); 420 set_debugreg(current->thread.debugreg7, 7);
420 421
421 /* Whee! Actually deliver the signal. */ 422 /* Whee! Actually deliver the signal. */
422 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { 423 if (handle_signal(signr, &info, &ka, oldset, regs) == 0) {
423 /* 424 /*
424 * A signal was successfully delivered; the saved 425 * A signal was successfully delivered; the saved
@@ -441,6 +442,7 @@ static void do_signal(struct pt_regs *regs)
441 regs->ax = regs->orig_ax; 442 regs->ax = regs->orig_ax;
442 regs->ip -= 2; 443 regs->ip -= 2;
443 break; 444 break;
445
444 case -ERESTART_RESTARTBLOCK: 446 case -ERESTART_RESTARTBLOCK:
445 regs->ax = NR_restart_syscall; 447 regs->ax = NR_restart_syscall;
446 regs->ip -= 2; 448 regs->ip -= 2;