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 <svens@linux.ibm.com>
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
Sven Schnelle 2022-12-07 22:18:38 +01:00 committed by Heiko Carstens
parent fe5e23dd98
commit 9975fde09e

View File

@ -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);