s390/qdio: put thinint indicator after early error
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 9 Apr 2020 07:59:39 +0000 (09:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:50:22 +0000 (17:50 +0200)
commiteb3e85b3375d9cab91a251044c57e8d8a3ccf74b
tree0163f1292461c301d273fee6f4daaf50aea9586f
parentd7852661f9fd3c448d05a079ca303a9f151f463d
s390/qdio: put thinint indicator after early error

[ Upstream commit 75e82bec6b2622c6f455b7a543fb5476a5d0eed7 ]

qdio_establish() calls qdio_setup_thinint() via qdio_setup_irq().
If the subsequent qdio_establish_thinint() fails, we miss to put the
DSCI again. Thus the DSCI isn't available for re-use. Given enough of
such errors, we could end up with having only the shared DSCI available.

Merge qdio_setup_thinint() into qdio_establish_thinint(), and deal with
such an error internally.

Fixes: 779e6e1c724d ("[S390] qdio: new qdio driver.")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_setup.c
drivers/s390/cio/qdio_thinint.c