linux/drivers/s390/cio
Sebastian Ott 4475aeb8b7 s390/cio: fix premature wakeup during chp configure
We store requests for channel path configure operations in an array but
maintain an additional cfg_busy variable (indicating if we have requests
stored in said array). When 2 tasks request a channel path configure
operation cfg_busy could be set to 0 even if we still have unprocessed
requests. This would lead to the second task being woken up although its
request was not processed yet.

Fix that by getting rid of cfg_busy and use the chp_cfg_task array
in the wake up condition.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-07-31 05:27:57 -04:00
..
airq.c s390/cio: Introduce common I/O layer tracepoints 2015-12-18 14:59:36 +01:00
blacklist.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
blacklist.h
ccwgroup.c s390/ccwgroup: use ccwgroup_ungroup wrapper 2014-06-16 10:32:52 +02:00
ccwreq.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
chp.c s390/cio: fix premature wakeup during chp configure 2016-07-31 05:27:57 -04:00
chp.h s390: use canonical include guard style 2016-06-13 15:58:17 +02:00
chsc_sch.c s390/chsc: fix ioctl CHSC_INFO_CU command 2016-07-15 14:31:58 +02:00
chsc_sch.h
chsc.c s390/chsc: improve channel path descriptor determination 2016-07-15 14:32:01 +02:00
chsc.h s390/chsc: improve channel path descriptor determination 2016-07-15 14:32:01 +02:00
cio_debug.h
cio.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
cio.h s390/cio: Consolidate inline assemblies and related data definitions 2015-12-18 14:59:34 +01:00
cmf.c s390/cio: allow to reset channel measurement block 2016-07-14 13:01:49 +02:00
crw.c s390/cio: Consolidate inline assemblies and related data definitions 2015-12-18 14:59:34 +01:00
css.c s390/cio: Remove unused inline assemblies 2015-12-18 14:59:33 +01:00
css.h s390/cio: Delay scan for newly available I/O devices 2013-12-16 14:37:41 +01:00
device_fsm.c s390/cio: Remove unused inline assemblies 2015-12-18 14:59:33 +01:00
device_id.c
device_ops.c s390/cio/device_ops: fix kernel doc 2016-07-15 14:31:57 +02:00
device_pgid.c s390/cio: move ccw_device_stlck functions 2015-10-27 09:34:44 +01:00
device_status.c
device.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
device.h s390/cio: move ccw_device_stlck functions 2015-10-27 09:34:44 +01:00
eadm_sch.c s390: remove unneeded variables 2015-08-07 09:57:01 +02:00
eadm_sch.h s390/eadm_sch: improve quiesce handling 2013-10-24 17:16:58 +02:00
fcx.c
idset.c s390/cio: idset.c: remove some unused functions 2015-01-08 10:02:50 +01:00
idset.h s390: use canonical include guard style 2016-06-13 15:58:17 +02:00
io_sch.h s390/cio: Consolidate inline assemblies and related data definitions 2015-12-18 14:59:34 +01:00
ioasm.c s390/cio: use basic blocks for i/o inline assemblies 2016-06-28 09:32:34 +02:00
ioasm.h s390/cio: Change I/O instructions from inline to normal functions 2015-12-18 14:59:37 +01:00
isc.c
itcw.c
Makefile s390/cio: Change I/O instructions from inline to normal functions 2015-12-18 14:59:37 +01:00
orb.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
qdio_debug.c s390: Delete unnecessary checks before the function call "debug_unregister" 2015-11-27 09:24:16 +01:00
qdio_debug.h qdio: Keep device-specific dbf entries 2014-06-16 10:31:58 +02:00
qdio_main.c s390/qdio: fix WARN_ON_ONCE condition 2015-10-07 04:52:06 -07:00
qdio_setup.c s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
qdio_thinint.c s390/airq: simplify adapter interrupt code 2013-06-26 21:10:28 +02:00
qdio.h s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
scm.c s390/scm_block: do not hide eadm subchannel dependency 2013-11-15 14:08:42 +01:00
trace.c s390/cio: Introduce common I/O layer tracepoints 2015-12-18 14:59:36 +01:00
trace.h s390/cio: Introduce common I/O layer tracepoints 2015-12-18 14:59:36 +01:00