]> git.baikalelectronics.ru Git - kernel.git/commit
s390/dasd: fix endless loop after read unit address configuration
authorStefan Haberland <sth@linux.ibm.com>
Thu, 1 Aug 2019 11:06:30 +0000 (13:06 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 2 Aug 2019 02:46:14 +0000 (20:46 -0600)
commit91cb4e0996ef8dd7d9b98115b3c003413eb2f7f7
tree3af80c31a5f01521519796f7e33b77bfcbe7da17
parent3c638ff715864f94283f859df966d52e97a21416
s390/dasd: fix endless loop after read unit address configuration

After getting a storage server event that causes the DASD device driver
to update its unit address configuration during a device shutdown there is
the possibility of an endless loop in the device driver.

In the system log there will be ongoing DASD error messages with RC: -19.

The reason is that the loop starting the ruac request only terminates when
the retry counter is decreased to 0. But in the sleep_on function there are
early exit paths that do not decrease the retry counter.

Prevent an endless loop by handling those cases separately.

Remove the unnecessary do..while loop since the sleep_on function takes
care of retries by itself.

Fixes: d961699f84cf ("[S390] dasd: add hyper PAV support to DASD device driver, part 1")
Cc: stable@vger.kernel.org # 2.6.25+
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/s390/block/dasd_alias.c