From: Sven Schnelle Date: Wed, 7 Dec 2022 21:18:38 +0000 (+0100) Subject: s390/con3270: return from notifier when activate view fails X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9975fde09e50b9ac9bab49cafac4ebc32cf4044c;p=linux.git s390/con3270: return from notifier when activate view fails When activating the view fails (in this case because the 3270 is disconnected) return from the notifer callback. Otherwise the system will deadlock. Signed-off-by: Sven Schnelle Acked-by: Heiko Carstens Signed-off-by: Heiko Carstens --- diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c index 7d163516ee453..5fa1f080d5f34 100644 --- a/drivers/s390/char/con3270.c +++ b/drivers/s390/char/con3270.c @@ -2079,12 +2079,16 @@ static int con3270_notify(struct notifier_block *self, { struct tty3270 *tp; unsigned long flags; + int rc; tp = condev; if (!tp->view.dev) return NOTIFY_DONE; - if (!raw3270_view_lock_unavailable(&tp->view)) - raw3270_activate_view(&tp->view); + if (!raw3270_view_lock_unavailable(&tp->view)) { + rc = raw3270_activate_view(&tp->view); + if (rc) + return NOTIFY_DONE; + } if (!spin_trylock_irqsave(&tp->view.lock, flags)) return NOTIFY_DONE; con3270_wait_write(tp);