diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2006-03-23 06:00:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-23 10:38:08 -0500 |
commit | fc558a7496bfab3d29a68953b07a95883fdcfbb1 (patch) | |
tree | f40935c321e088b40608ebbcc8fc502d269578da /arch | |
parent | ce6ed29f3136bc4b3644ecf4091d6390d444f628 (diff) |
[PATCH] swsusp: finally solve mysqld problem
This patch from Pavel moves userland freeze signals handling into more logical
place. It now hits even with mysqld running.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/x86_64/kernel/signal.c | 4 |
2 files changed, 0 insertions, 8 deletions
diff --git a/arch/i386/kernel/signal.c b/arch/i386/kernel/signal.c index 608eac4a7324..5c352c3a9e7f 100644 --- a/arch/i386/kernel/signal.c +++ b/arch/i386/kernel/signal.c | |||
@@ -583,9 +583,6 @@ static void fastcall do_signal(struct pt_regs *regs) | |||
583 | if (!user_mode(regs)) | 583 | if (!user_mode(regs)) |
584 | return; | 584 | return; |
585 | 585 | ||
586 | if (try_to_freeze()) | ||
587 | goto no_signal; | ||
588 | |||
589 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | 586 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
590 | oldset = ¤t->saved_sigmask; | 587 | oldset = ¤t->saved_sigmask; |
591 | else | 588 | else |
@@ -614,7 +611,6 @@ static void fastcall do_signal(struct pt_regs *regs) | |||
614 | return; | 611 | return; |
615 | } | 612 | } |
616 | 613 | ||
617 | no_signal: | ||
618 | /* Did we come from a system call? */ | 614 | /* Did we come from a system call? */ |
619 | if (regs->orig_eax >= 0) { | 615 | if (regs->orig_eax >= 0) { |
620 | /* Restart the system call - no handlers present */ | 616 | /* Restart the system call - no handlers present */ |
diff --git a/arch/x86_64/kernel/signal.c b/arch/x86_64/kernel/signal.c index 5876df116c92..e5f5ce7909a3 100644 --- a/arch/x86_64/kernel/signal.c +++ b/arch/x86_64/kernel/signal.c | |||
@@ -443,9 +443,6 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
443 | if (!user_mode(regs)) | 443 | if (!user_mode(regs)) |
444 | return 1; | 444 | return 1; |
445 | 445 | ||
446 | if (try_to_freeze()) | ||
447 | goto no_signal; | ||
448 | |||
449 | if (!oldset) | 446 | if (!oldset) |
450 | oldset = ¤t->blocked; | 447 | oldset = ¤t->blocked; |
451 | 448 | ||
@@ -463,7 +460,6 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
463 | return handle_signal(signr, &info, &ka, oldset, regs); | 460 | return handle_signal(signr, &info, &ka, oldset, regs); |
464 | } | 461 | } |
465 | 462 | ||
466 | no_signal: | ||
467 | /* Did we come from a system call? */ | 463 | /* Did we come from a system call? */ |
468 | if ((long)regs->orig_rax >= 0) { | 464 | if ((long)regs->orig_rax >= 0) { |
469 | /* Restart the system call - no handlers present */ | 465 | /* Restart the system call - no handlers present */ |