• Stefan Haberland's avatar
    s390/dasd: fix endless loop after read unit address configuration · 41995342
    Stefan Haberland authored
    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: 8e09f215 ("[S390] dasd: add hyper PAV support to DASD device driver, part 1")
    Cc: stable@vger.kernel.org # 2.6.25+
    Signed-off-by: default avatarStefan Haberland <sth@linux.ibm.com>
    Reviewed-by: default avatarJan Hoeppner <hoeppner@linux.ibm.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    41995342
dasd_alias.c 27.3 KB