]> www.infradead.org Git - users/jedix/linux-maple.git/commit
s390/qdio: handle deferred cc1
authorPeter Oberparleiter <oberpar@linux.ibm.com>
Wed, 10 Apr 2024 09:46:18 +0000 (11:46 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Fri, 12 Apr 2024 14:13:02 +0000 (16:13 +0200)
commit607638faf2ff1cede37458111496e7cc6c977f6f
tree174cfab69c81c0b1d5c88c5a058ff843d877c040
parent378ca2d2ad410a1cd5690d06b46c5e2297f4c8c0
s390/qdio: handle deferred cc1

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 2297791c92d0 ("s390/cio: dont unregister subchannel from child-drivers")
commit 5ef1dc40ffa6 ("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: 2297791c92d0 ("s390/cio: dont unregister subchannel from child-drivers")
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
drivers/s390/cio/qdio_main.c