From 9975fde09e50b9ac9bab49cafac4ebc32cf4044c Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Wed, 7 Dec 2022 22:18:38 +0100 Subject: 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 --- drivers/s390/char/con3270.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'drivers/s390/char') diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c index 7d163516ee45..5fa1f080d5f3 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); -- cgit v1.2.3