]> git.neil.brown.name Git - history.git/commitdiff
Make dequeue_signal() take the process as an argument.
authorLinus Torvalds <torvalds@home.transmeta.com>
Thu, 13 Feb 2003 01:34:50 +0000 (17:34 -0800)
committerVojtech Pavlik <vojtech@kernel.bkbits.net>
Thu, 13 Feb 2003 01:34:50 +0000 (17:34 -0800)
This simplifies it and makes it more generic.

12 files changed:
arch/arm/kernel/signal.c
arch/m68k/kernel/signal.c
arch/mips/kernel/irixsig.c
arch/s390x/kernel/linux32.c
arch/sparc64/kernel/sys_sparc32.c
drivers/block/nbd.c
fs/afs/internal.h
fs/jffs/intrep.c
fs/jffs2/background.c
include/linux/sched.h
kernel/signal.c
net/rxrpc/internal.h

index c70ebebb1eb15e6d5d8c9214e8400d50d2ec103b..e5903e79021d7e4077b413e89e9cbd01a7c1be12 100644 (file)
@@ -522,7 +522,7 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
                struct k_sigaction *ka;
 
                spin_lock_irq(&current->sighand->siglock);
-               signr = dequeue_signal(&current->blocked, &info);
+               signr = dequeue_signal(current, &current->blocked, &info);
                spin_unlock_irq(&current->sighand->siglock);
 
                if (!signr)
index 908785fd123ffdf0a81545ee1e1531c3d2e22da2..f0bf31825dd8f9ede2a02c39a137b53e7ee3895a 100644 (file)
@@ -1004,7 +1004,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
        for (;;) {
                int signr;
 
-               signr = dequeue_signal(&current->blocked, &info);
+               signr = dequeue_signal(current, &current->blocked, &info);
 
                if (!signr)
                        break;
index 536afe6d367b350fce654b68961fc65f4c6aff79..cc687306faccf66fef6b78a907cddea3c0322711 100644 (file)
@@ -183,7 +183,7 @@ asmlinkage int do_irix_signal(sigset_t *oldset, struct pt_regs *regs)
                unsigned long signr;
 
                spin_lock_irq(&current->sigmask_lock);
-               signr = dequeue_signal(&current->blocked, &info);
+               signr = dequeue_signal(current, &current->blocked, &info);
                spin_unlock_irq(&current->sigmask_lock);
 
                if (!signr)
index 298c903a2d7c6e86fad9099755d4f32b6f0a0631..a26632e3dd9ae4c46223252aa2297c99b7ff986a 100644 (file)
@@ -1726,7 +1726,7 @@ sys32_rt_sigtimedwait(compat_sigset_t *uthese, siginfo_t32 *uinfo,
        }
 
        spin_lock_irq(&current->sighand->siglock);
-       sig = dequeue_signal(&these, &info);
+       sig = dequeue_signal(current, &these, &info);
        if (!sig) {
                /* None ready -- temporarily unblock those we're interested
                   in so that we'll be awakened when they arrive.  */
@@ -1744,7 +1744,7 @@ sys32_rt_sigtimedwait(compat_sigset_t *uthese, siginfo_t32 *uinfo,
                timeout = schedule_timeout(timeout);
 
                spin_lock_irq(&current->sighand->siglock);
-               sig = dequeue_signal(&these, &info);
+               sig = dequeue_signal(current, &these, &info);
                current->blocked = current->real_blocked;
                siginitset(&current->real_blocked, 0);
                recalc_sigpending();
index b01db9baf0d69e4cd2857a833e63f65e2091a67a..f237a92d3993de0f525b2fad41fcc409e60a5f88 100644 (file)
@@ -1813,7 +1813,7 @@ sys32_rt_sigtimedwait(compat_sigset_t *uthese, siginfo_t32 *uinfo,
        }
 
        spin_lock_irq(&current->sighand->siglock);
-       sig = dequeue_signal(&these, &info);
+       sig = dequeue_signal(current, &these, &info);
        if (!sig) {
                timeout = MAX_SCHEDULE_TIMEOUT;
                if (uts)
@@ -1833,7 +1833,7 @@ sys32_rt_sigtimedwait(compat_sigset_t *uthese, siginfo_t32 *uinfo,
                        timeout = schedule_timeout(timeout);
 
                        spin_lock_irq(&current->sighand->siglock);
-                       sig = dequeue_signal(&these, &info);
+                       sig = dequeue_signal(current, &these, &info);
                        current->blocked = current->real_blocked;
                        siginitset(&current->real_blocked, 0);
                        recalc_sigpending();
index d765900b200b1f5f36946bb320fd7e52bad2bd96..8aa52f3e5a73471b7b35452742c7ea1642ea373b 100644 (file)
@@ -149,7 +149,7 @@ static int nbd_xmit(int send, struct socket *sock, char *buf, int size, int msg_
                        spin_lock_irqsave(&current->sighand->siglock, flags);
                        printk(KERN_WARNING "NBD (pid %d: %s) got signal %d\n",
                                current->pid, current->comm, 
-                               dequeue_signal(&current->blocked, &info));
+                               dequeue_signal(current, &current->blocked, &info));
                        spin_unlock_irqrestore(&current->sighand->siglock, flags);
                        result = -EINTR;
                        break;
index 7de072e495c08c86eef89bf0c15b56313b036238..9f0928f8c41a5fcacd5665df433dda7c28009f3d 100644 (file)
@@ -47,7 +47,7 @@ static inline void afs_discard_my_signals(void)
                siginfo_t sinfo;
 
                spin_lock_irq(&current->sighand->siglock);
-               dequeue_signal(&current->blocked,&sinfo);
+               dequeue_signal(current,&current->blocked,&sinfo);
                spin_unlock_irq(&current->sighand->siglock);
        }
 }
index 75dfa360cc55d029eaeb6ee2004af44e97210c69..4bf70291ae2f0130855a6a378884af21903c8933 100644 (file)
@@ -3378,7 +3378,7 @@ jffs_garbage_collect_thread(void *ptr)
                        unsigned long signr = 0;
 
                        spin_lock_irq(&current->sighand->siglock);
-                       signr = dequeue_signal(&current->blocked, &info);
+                       signr = dequeue_signal(current, &current->blocked, &info);
                        spin_unlock_irq(&current->sighand->siglock);
 
                        switch(signr) {
index c63568931e15874206e7872a5d8dc2840f6f8be8..f72b1107c766c00e313fd5b8c9f76e70e9bf96e3 100644 (file)
@@ -114,7 +114,7 @@ static int jffs2_garbage_collect_thread(void *_c)
                        unsigned long signr;
 
                        spin_lock_irq(&current_sig_lock);
-                       signr = dequeue_signal(&current->blocked, &info);
+                       signr = dequeue_signal(current, &current->blocked, &info);
                        spin_unlock_irq(&current_sig_lock);
 
                        switch(signr) {
index 5432eb4765fcbf2441b4485a0b5cd62f5c307ea1..d3cd5e31e8f95f3de945c4fdc18cb9da039e1530 100644 (file)
@@ -530,7 +530,7 @@ extern int in_egroup_p(gid_t);
 extern void proc_caches_init(void);
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
-extern int dequeue_signal(sigset_t *mask, siginfo_t *info);
+extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
                              sigset_t *mask);
 extern void unblock_all_signals(void);
index 483a6d815ebba786f8e524ed52258f2ddcc24c34..d0d09cfbe8632b50a32f38599c6aa02990f2874a 100644 (file)
@@ -485,11 +485,11 @@ static int __dequeue_signal(struct sigpending *pending, sigset_t *mask,
  *
  * All callers have to hold the siglock.
  */
-int dequeue_signal(sigset_t *mask, siginfo_t *info)
+int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
 {
-       int signr = __dequeue_signal(&current->pending, mask, info);
+       int signr = __dequeue_signal(&tsk->pending, mask, info);
        if (!signr)
-               signr = __dequeue_signal(&current->signal->shared_pending,
+               signr = __dequeue_signal(&tsk->signal->shared_pending,
                                         mask, info);
        return signr;
 }
@@ -1456,7 +1456,7 @@ int get_signal_to_deliver(siginfo_t *info, struct pt_regs *regs, void *cookie)
                        continue;
                }
        dequeue:
-               signr = dequeue_signal(mask, info);
+               signr = dequeue_signal(current, mask, info);
                spin_unlock_irq(&current->sighand->siglock);
 
                if (!signr)
@@ -1811,7 +1811,7 @@ sys_rt_sigtimedwait(const sigset_t *uthese, siginfo_t *uinfo,
        }
 
        spin_lock_irq(&current->sighand->siglock);
-       sig = dequeue_signal(&these, &info);
+       sig = dequeue_signal(current, &these, &info);
        if (!sig) {
                timeout = MAX_SCHEDULE_TIMEOUT;
                if (uts)
@@ -1831,7 +1831,7 @@ sys_rt_sigtimedwait(const sigset_t *uthese, siginfo_t *uinfo,
                        timeout = schedule_timeout(timeout);
 
                        spin_lock_irq(&current->sighand->siglock);
-                       sig = dequeue_signal(&these, &info);
+                       sig = dequeue_signal(current, &these, &info);
                        current->blocked = current->real_blocked;
                        siginitset(&current->real_blocked, 0);
                        recalc_sigpending();
index b0ee06b71a7ec5b07eef35c4e3de91ed7db5a4bc..f76d48c4cf3d029aa57e98bd187380ea2130e5c0 100644 (file)
@@ -55,7 +55,7 @@ static inline void rxrpc_discard_my_signals(void)
                siginfo_t sinfo;
 
                spin_lock_irq(&current->sighand->siglock);
-               dequeue_signal(&current->blocked,&sinfo);
+               dequeue_signal(current,&current->blocked,&sinfo);
                spin_unlock_irq(&current->sighand->siglock);
        }
 }