linux/drivers/s390/cio
Sebastian Ott b4563e891a [S390] cio: wait for channel report
To fetch a pending channel report word (crw) we use a kernel
thread which triggers stcrw and sleeps on a semaphore. The s390
machine check handler uses crw_handle_channel_report to handle
one crw if needed.

This patch replaces the semaphore with a waitqueue (to block the
kernel thread) and an atomic_t (to count the number of pending
requests).

By this we achieve the ability to force this thread to check for
a pending crw (independent on when it is triggered by the machine
check handler) and wait for this action to finish.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2010-02-26 22:37:29 +01:00
..
airq.c [S390] cio: airq - fix array boundary 2009-03-26 15:24:14 +01:00
blacklist.c [S390] Fix memory leak in /proc/cio_ignore 2009-10-06 10:35:07 +02:00
blacklist.h [PATCH] s390: multiple subchannel sets support 2006-01-06 08:33:52 -08:00
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 tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
chp.h [S390] cio: Repair chpid event handling. 2008-07-14 10:02:11 +02:00
chsc_sch.c [S390] cio: add missing compat ptr conversion 2010-01-13 20:44:44 +01:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
chsc.c [S390] pm: css bus power management callbacks 2009-06-16 10:31:09 +02:00
chsc.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
cio_debug.h [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
cio.c nohz: Introduce arch_needs_cpu 2009-11-05 07:53:53 +01:00
cio.h [S390] cio: introduce subchannel todos 2009-12-07 12:51:30 +01: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] cio: introduce cio_settle 2010-02-26 22:37:29 +01:00
css.h [S390] cio: consolidate workqueues 2010-02-26 22:37:29 +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
device.c [S390] cio: consolidate workqueues 2010-02-26 22:37:29 +01:00
device.h [S390] cio: consolidate workqueues 2010-02-26 22:37:29 +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: fix channel path vary 2009-12-18 17:43:32 +01:00
ioasm.h [S390] cio: inline assembly cleanup 2008-10-10 21:33:53 +02:00
isc.c [S390] cio: introduce isc_(un)register functions. 2008-07-14 10:02:11 +02:00
itcw.c [S390] cio: provide helper functions for fcx enabled I/O 2008-07-14 10:02:08 +02:00
Makefile [S390] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00
qdio_debug.c [S390] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00
qdio_debug.h [S390] qdio: rework debug feature logging 2008-12-25 13:38:59 +01:00
qdio_main.c [S390] qdio: prevent call trace if CHPID is offline 2010-02-09 09:46:23 +01:00
qdio_setup.c [S390] qdio: remove superfluous log entries and WARN_ONs. 2009-12-18 17:43:32 +01:00
qdio_thinint.c [S390] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00
qdio.h [S390] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00