2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 22:24:09 +08:00
linux-next/drivers/s390/cio
Sebastian Ott 2253e8d792 s390/cio: fix driver callback initialization for ccw consoles
ccw consoles are in use before they can be properly registered with
the driver core. For devices which are in use by a device driver we
rely on the ccw_device's pointer to the driver callbacks to be valid.
For ccw consoles this pointer is NULL until they are registered later
during boot and we dereferenced this pointer. This worked by
chance on 64 bit builds (cdev->drv was NULL but the optional callback
cdev->drv->path_event was also NULL by coincidence) and was unnoticed
until we received reports about boot failures on 31 bit systems.
Fix it by initializing the driver pointer for ccw consoles.

Cc: <stable@vger.kernel.org> # 3.10+
Reported-by: Mike Frysinger <vapier@gentoo.org>
Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2014-02-21 08:50:11 +01:00
..
airq.c s390/bitops: rename find_first_bit_left() to find_first_bit_inv() 2013-10-24 17:16:56 +02:00
blacklist.c s390/blacklist: Perform subchannel scan only when needed 2013-12-16 14:37:43 +01:00
blacklist.h
ccwgroup.c s390/cio: use device_lock to synchronize calls to the ccwgroup driver 2013-12-16 14:38:03 +01:00
ccwreq.c [S390] cio: add message for timeouts on internal I/O 2011-10-30 15:16:41 +01:00
chp.c s390/cio: add channel ID sysfs attribute 2013-05-15 16:47:39 +02:00
chp.h s390/cio: collect format 1 channel-path description data 2013-04-17 14:07:26 +02:00
chsc_sch.c s390/chsc: Use snprintf instead of sprintf 2013-06-26 21:10:16 +02:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
chsc.c s390/qdio: bridgeport support - CHSC part 2014-01-14 15:16:09 +01:00
chsc.h s390/qdio: bridgeport support - CHSC part 2014-01-14 15:16:09 +01:00
cio_debug.h [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
cio.c s390/cio: improve cio_commit_config 2014-02-06 11:21:23 +01:00
cio.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
cmf.c s390: replace strict_strtoul() with kstrtoul() 2013-08-22 12:20:00 +02:00
crw.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css.c s390/css: Prevent unnecessary allocation in subchannel loop 2013-12-16 14:37:42 +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/time: rename tod clock access functions 2013-02-14 15:55:10 +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: make use of newly added format 1 channel-path data 2013-04-17 14:07:26 +02:00
device_pgid.c s390/cio: handle unknown pgroup state 2013-02-14 15:55:09 +01:00
device_status.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device.c s390/cio: fix driver callback initialization for ccw consoles 2014-02-21 08:50:11 +01:00
device.h s390/cio: fix early init counter usage 2013-04-17 14:07:33 +02:00
eadm_sch.c s390/scm_block: do not hide eadm subchannel dependency 2013-11-15 14:08:42 +01: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: Use BITS_TO_LONGS() instead of __BITOPS_WORDS() 2013-04-17 14:07:29 +02:00
idset.h s390/css: stop stsch loop after cc 3 2012-10-18 17:50:08 +02: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_debug.c constify a bunch of struct file_operations instances 2013-04-09 14:16:20 -04:00
qdio_debug.h s390/s390dbf: use debug_level_enabled() where applicable 2013-10-24 17:16:54 +02:00
qdio_main.c s390/qdio: correct program-controlled interruption checking 2014-01-29 09:07:50 +01:00
qdio_setup.c s390/qdio: cleanup chsc SSQD usage 2013-06-26 21:10:14 +02:00
qdio_thinint.c s390/airq: simplify adapter interrupt code 2013-06-26 21:10:28 +02:00
qdio.h s390/qdio: for_each macro correctness 2014-01-29 09:07:50 +01:00
scm.c s390/scm_block: do not hide eadm subchannel dependency 2013-11-15 14:08:42 +01:00