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:48:36 +0000 (17:48 +0200)
commit854a04f82c792a4eb72caba3b181e08095d3d47e
tree3dd8f21b6b0f060d8d353e3ea26da91c605a9716
parent42d6c5a750b2bd2501a9bdeaadd4010b09e3e0a3
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