The intention was clearly to use the tty_pgrp local variable rather than
re-read tty->pgrp outside of ctrl_lock, so do that.

This bug was introduced by commit 2812d9e9fd94 ("tty: Combine
SIGTTOU/SIGTTIN handling").

Signed-off-by: David Emett <d...@sp4m.net>
---
 drivers/tty/tty_jobctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/tty_jobctrl.c b/drivers/tty/tty_jobctrl.c
index c4ecd66fafef..eac05227588d 100644
--- a/drivers/tty/tty_jobctrl.c
+++ b/drivers/tty/tty_jobctrl.c
@@ -44,7 +44,7 @@ int __tty_check_change(struct tty_struct *tty, int sig)
        tty_pgrp = tty->pgrp;
        spin_unlock_irqrestore(&tty->ctrl_lock, flags);
 
-       if (tty_pgrp && pgrp != tty->pgrp) {
+       if (tty_pgrp && pgrp != tty_pgrp) {
                if (is_ignored(sig)) {
                        if (sig == SIGTTIN)
                                ret = -EIO;
-- 
2.17.1

Reply via email to