WSL2-Linux-Kernel/drivers/s390/cio
Sebastian Ott d53c51f261 s390/cio: fix accidental interrupt enabling during resume
Since commit 9f3d6d7 chsc_get_channel_measurement_chars is called with
interrupts disabled during resume from hibernate. Since this function
used spin_unlock_irq, interrupts have been enabled accidentally. Fix
this by using the irqsave variant.

Since we can't guarantee the IRQ-enablement state for all (future/
external) callers, change the locking in related functions to prevent
similar bugs in the future.

Fixes: 9f3d6d7 ("s390/cio: update measurement characteristics")
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-09-30 09:13:11 +02:00
..
Makefile s390/cio: Change I/O instructions from inline to normal functions 2015-12-18 14:59:37 +01: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
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.c s390/cio: fix accidental interrupt enabling during resume 2016-09-30 09:13:11 +02:00
chsc.h s390/chsc: improve channel path descriptor determination 2016-07-15 14:32:01 +02:00
chsc_sch.c s390/chsc: fix ioctl CHSC_INFO_CU command 2016-07-15 14:31:58 +02:00
chsc_sch.h
cio.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
cio.h s390: cio: remove redundant cio_cancel declaration 2016-08-24 09:23:56 +02:00
cio_debug.h
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
device.c s390/cio: remove subchannel_id from ccw_device_private 2016-08-08 15:41:33 +02:00
device.h
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
device_status.c s390/cio: stop using subchannel_id from ccw_device_private 2016-08-08 15:41:32 +02:00
eadm_sch.c
eadm_sch.h
fcx.c
idset.c
idset.h s390: use canonical include guard style 2016-06-13 15:58:17 +02:00
io_sch.h s390/cio: remove subchannel_id from ccw_device_private 2016-08-08 15:41:33 +02: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
orb.h
qdio.h
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_main.c s390/qdio: avoid reschedule of outbound tasklet once killed 2016-08-08 16:01:28 +02:00
qdio_setup.c
qdio_thinint.c
scm.c
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