kernel-hacking-2024-linux-s.../drivers/s390/cio
Peter Oberparleiter d302e1a5db [S390] cio: fix channel path vary
Channel path vary is currently broken: channel paths which are varied
offline are still used by Linux. The reason for this is that:

 * the path mask indicating which paths of an I/O device can be used
   is reset by each internal I/O request
 * the logic that checks if a path group is already in its designated
   target state incorrectly interprets the result "is correctly set"
   as "is correctly set and available"

Fix this by resetting the path mask only for internal I/O requests
which affect the path mask and by correcting the pgid check logic.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-12-18 17:43:32 +01:00
..
airq.c
blacklist.c
blacklist.h
ccwgroup.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
ccwreq.c [S390] cio: fix channel path vary 2009-12-18 17:43:32 +01:00
chp.c
chp.h
chsc.c
chsc.h
chsc_sch.c
chsc_sch.h
cio.c
cio.h
cio_debug.h
cmf.c
crw.c
css.c const: constify remaining dev_pm_ops 2009-12-15 08:53:25 -08:00
css.h
device.c [S390] cio: fix drvdata usage for the console subchannel 2009-12-18 17:43:31 +01:00
device.h [S390] cio: make steal lock procedure more robust 2009-12-07 12:51:32 +01:00
device_fsm.c [S390] cio: handle failed disable_subchannel after device recognition 2009-12-07 12:51:32 +01:00
device_id.c [S390] cio: improve error recovery for internal I/Os 2009-12-07 12:51:33 +01:00
device_ops.c [S390] cio: make steal lock procedure more robust 2009-12-07 12:51:32 +01:00
device_pgid.c [S390] cio: fix channel path vary 2009-12-18 17:43:32 +01:00
device_status.c [S390] cio: remove intretry flag 2009-12-07 12:51:31 +01:00
fcx.c [S390] drivers: Correct size given to memset 2009-12-18 17:43:32 +01:00
idset.c
idset.h
io_sch.h [S390] cio: fix channel path vary 2009-12-18 17:43:32 +01:00
ioasm.h
isc.c
itcw.c
Makefile
qdio.h
qdio_debug.c
qdio_debug.h
qdio_main.c
qdio_perf.c
qdio_perf.h
qdio_setup.c
qdio_thinint.c