linux/drivers/s390/cio
Sebastian Ott e990e8ba92 s390/cio: allow to reset channel measurement block
commit 0f5d050cea upstream.

Prior to commit 1bc6664bdf a call to
enable_cmf for a device for which channel measurement was already
enabled resulted in a reset of the measurement data.

What looked like bugs at the time (a 2nd allocation was triggered
but failed, reset was called regardless of previous failures, and
errors have not been reported to userspace) was actually something
at least one userspace tool depended on. Restore that behavior in
a sane way.

Fixes: 1bc6664bdf ("s390/cio: use device_lock during cmb activation")
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2016-08-20 18:09:18 +02:00
..
airq.c s390/nohz: use a per-cpu flag for arch_needs_cpu 2014-10-09 09:14:02 +02:00
blacklist.c s390: remove use of seq_printf return value 2015-04-15 16:35:25 -07:00
blacklist.h [PATCH] s390: multiple subchannel sets support 2006-01-06 08:33:52 -08:00
ccwgroup.c s390/ccwgroup: use ccwgroup_ungroup wrapper 2014-06-16 10:32:52 +02:00
ccwreq.c s390: cio driver &__get_cpu_var replacements 2014-08-26 13:45:52 -04:00
chp.c s390/cio: replace strnicmp with strncasecmp 2014-10-14 02:18:25 +02:00
chp.h s390/cio: fix multiple structure definitions 2014-05-20 08:58:53 +02:00
chsc.c s390: add support for ipl devices in subchannel sets > 0 2015-11-11 13:56:27 +01:00
chsc.h s390: add support for ipl devices in subchannel sets > 0 2015-11-11 13:56:27 +01:00
chsc_sch.c s390: cio driver &__get_cpu_var replacements 2014-08-26 13:45:52 -04:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
cio.c s390: add support for ipl devices in subchannel sets > 0 2015-11-11 13:56:27 +01:00
cio.h s390/lowcore: replace lowcore irb array with a per-cpu variable 2014-05-28 10:39:16 +02:00
cio_debug.h [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
cmf.c s390/cio: allow to reset channel measurement block 2016-08-20 18:09:18 +02:00
crw.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css.c s390/cio: simplify css_generate_pgid 2015-11-09 09:10:48 +01:00
css.h s390/cio: Delay scan for newly available I/O devices 2013-12-16 14:37:41 +01:00
device.c s390/cio: fix use after free in cmb processing 2015-10-14 14:32:02 +02:00
device.h s390/cio: move ccw_device_stlck functions 2015-10-27 09:34:44 +01:00
device_fsm.c s390/cio: move ccw_device_call_handler 2015-10-27 09:34:43 +01:00
device_id.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device_ops.c s390/cio: move ccw_device_stlck functions 2015-10-27 09:34:44 +01:00
device_pgid.c s390/cio: move ccw_device_stlck functions 2015-10-27 09:34:44 +01:00
device_status.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02: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 [S390] drivers: Correct size given to memset 2009-12-18 17:43:32 +01:00
idset.c s390/cio: idset.c: remove some unused functions 2015-01-08 10:02:50 +01:00
idset.h s390/cio: idset.c: remove some unused functions 2015-01-08 10:02:50 +01:00
io_sch.h s390/cio: dont abort verification after missing irq 2013-02-14 15:55:07 +01:00
ioasm.h [S390] cio: move asms to generic header 2011-03-15 17:08:23 +01:00
isc.c [S390] cio: introduce isc_(un)register functions. 2008-07-14 10:02:11 +02:00
itcw.c [S390] cio: reduce memory consumption of itcw structures 2011-01-05 12:47:29 +01:00
Makefile s390/cio: add eadm subchannel driver 2012-09-26 15:45:00 +02:00
orb.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
qdio.h s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
qdio_debug.c qdio: Keep device-specific dbf entries 2014-06-16 10:31:58 +02: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
scm.c s390/scm_block: do not hide eadm subchannel dependency 2013-11-15 14:08:42 +01:00