diff options
-rw-r--r-- | arch/x86/kernel/signal_64.c | 6 |
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; |