• Peter Oberparleiter's avatar
    s390/qdio: handle deferred cc1 · 607638fa
    Peter Oberparleiter authored
    A deferred condition code 1 response indicates that I/O was not started
    and should be retried. The current QDIO implementation handles a cc1
    response as I/O error, resulting in a failed QDIO setup. This can happen
    for example when a path verification request arrives at the same time
    as QDIO setup I/O is started.
    
    Fix this by retrying the QDIO setup I/O when a cc1 response is received.
    
    Note that since
    
    commit 2297791c ("s390/cio: dont unregister subchannel from child-drivers")
    commit 5ef1dc40 ("s390/cio: fix invalid -EBUSY on ccw_device_start")
    
    deferred cc1 responses are much more likely to occur. See the commit
    message of the latter for more background information.
    
    Fixes: 2297791c ("s390/cio: dont unregister subchannel from child-drivers")
    Reviewed-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
    Signed-off-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    607638fa
qdio_main.c 34.7 KB