VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   33 Branches   57 Tags
author: Davide Libenzi <davidel@xmailserver.org> 2007-06-27 14:09:59 -0700 committer: Linus Torvalds <torvalds@woody.linux-foundation.org> 2007-06-28 11:34:54 -0700 commit: f8738c5c5298d55ccfc26383f9f45af082a9be57 parent: 58e78475ec706f93e0cc049449ffd11fbfdadb3e
Commit Summary:
avoid spurious POLLIN returns in signalfd
Diffstat:
1 file changed, 2 insertions, 1 deletion
diff --git a/fs/signalfd.c b/fs/signalfd.c
index f1da89203a9a..3b07f26d984d 100644
--- a/fs/signalfd.c
+++ b/fs/signalfd.c
@@ -133,7 +133,8 @@ static unsigned int signalfd_poll(struct file *file, poll_table *wait)
 	 * the peer disconnects.
 	 */
 	if (signalfd_lock(ctx, &lk)) {
-		if (next_signal(&lk.tsk->pending, &ctx->sigmask) > 0 ||
+		if ((lk.tsk == current &&
+		     next_signal(&lk.tsk->pending, &ctx->sigmask) > 0) ||
 		    next_signal(&lk.tsk->signal->shared_pending,
 				&ctx->sigmask) > 0)
 			events |= POLLIN;