]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/signal.c
[PATCH] Avoid taking global tasklist_lock for single threadedprocess at getrusage()
[linux-2.6-omap-h63xx.git] / kernel / signal.c
index ea154104a00bf43a6a62a7d90d229465a4bfbc95..dfb09ba5c013ea56d6d981f314f3dd53c9a4180b 100644 (file)
@@ -1922,6 +1922,8 @@ int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka,
        sigset_t *mask = &current->blocked;
        int signr = 0;
 
+       try_to_freeze();
+
 relock:
        spin_lock_irq(&current->sighand->siglock);
        for (;;) {
@@ -2307,7 +2309,6 @@ sys_rt_sigtimedwait(const sigset_t __user *uthese,
 
                        timeout = schedule_timeout_interruptible(timeout);
 
-                       try_to_freeze();
                        spin_lock_irq(&current->sighand->siglock);
                        sig = dequeue_signal(current, &these, &info);
                        current->blocked = current->real_blocked;