linux/drivers/s390/cio
Peter Oberparleiter 376ae4752e [S390] cio: fix I/O cancel function
Function ccw_device_cancel_halt_clear may cause an unexpected kernel
panic if a clear function is currently active at the subchannel for
which it is called. In that case, the iretry counter used to determine
the number of retries is never initialized, leading to an immediate
failure of the function which results in a kernel panic.

Fix this by initializing the iretry counter when the function is
first called. Also replace the kernel panic with a return code: a
single malfunctioning I/O device should not automatically cause a
system-wide kernel panic.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2010-10-25 16:10:20 +02:00
..
airq.c [S390] cio: airq - fix array boundary 2009-03-26 15:24:14 +01:00
blacklist.c [S390] cio: remove custom implementation of hex_to_bin() 2010-10-25 16:10:17 +02:00
blacklist.h
ccwgroup.c [S390] ccwgroup: add locking around drvdata access 2010-05-26 23:27:09 +02:00
ccwreq.c [S390] ccwreq: add ability to use all paths 2010-08-09 18:12:54 +02:00
chp.c [S390] cio: update descriptor in chsc_chp_vary 2010-10-25 16:10:18 +02:00
chp.h [S390] cio: update descriptor in chsc_chp_vary 2010-10-25 16:10:18 +02:00
chsc.c [S390] css: update descriptor after hibernate 2010-10-25 16:10:18 +02:00
chsc.h [S390] chsc: use the global page to determine the chp desriptor 2010-10-25 16:10:18 +02:00
chsc_sch.c [S390] chsc: use the global page to determine the chp desriptor 2010-10-25 16:10:18 +02:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
cio.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
cio.h [S390] cio: introduce subchannel todos 2009-12-07 12:51:30 +01:00
cio_debug.h [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
cmf.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
crw.c [S390] cio: wait for channel report 2010-02-26 22:37:29 +01:00
css.c [S390] css: update subchannel description after hibernate 2010-10-25 16:10:18 +02:00
css.h [S390] cio: trigger subchannel event at resume time 2010-02-26 22:37:30 +01:00
device.c [S390] cio: fix I/O cancel function 2010-10-25 16:10:20 +02:00
device.h [S390] ccw_device_notify: improve return codes 2010-02-26 22:37:29 +01:00
device_fsm.c [S390] cio: fix I/O cancel function 2010-10-25 16:10:20 +02:00
device_id.c [S390] cio: use all available paths for some internal I/O 2010-08-09 18:12:54 +02: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: notify drivers of channel path events 2010-10-25 16:10:19 +02: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 [S390] cio: introduce consistent subchannel scanning 2009-09-22 22:58:42 +02:00
idset.h [S390] cio: introduce consistent subchannel scanning 2009-09-22 22:58:42 +02:00
io_sch.h [S390] cio: notify drivers of channel path events 2010-10-25 16:10:19 +02:00
ioasm.h [S390] cio: remove stsch 2010-05-26 23:27:09 +02:00
isc.c [S390] cio: introduce isc_(un)register functions. 2008-07-14 10:02:11 +02:00
itcw.c [S390] appldata/extmem/kvm: add missing GFP_KERNEL flag 2010-06-08 18:58:23 +02:00
Makefile [S390] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00
qdio.h qdio: extend API to allow polling 2010-09-08 14:31:00 -07:00
qdio_debug.c qdio: extend API to allow polling 2010-09-08 14:31:00 -07:00
qdio_debug.h [S390] qdio: rework debug feature logging 2008-12-25 13:38:59 +01:00
qdio_main.c qdio: extend API to allow polling 2010-09-08 14:31:00 -07:00
qdio_setup.c qdio: extend API to allow polling 2010-09-08 14:31:00 -07:00
qdio_thinint.c qdio: extend API to allow polling 2010-09-08 14:31:00 -07:00