linux/drivers/s390/cio
Peter Oberparleiter c03017544e [S390] cio: fix ccwgroup unregistration race condition
A race condition exists in the ccwgroup device unregistration code
which can cause a kernel panic due to a use-after-free bug. This
race condition might be triggered when all ccw devices associated with
a ccwgroup device are removed at the same time (e.g. because the
corresponding channel path becomes no longer available).

Fix this race condition by clearing the references from the associated
ccw devices to the ccw group device during unregistration of the
ccw group device.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2011-01-05 12:47:31 +01:00
..
airq.c [S390] cio: airq - fix array boundary 2009-03-26 15:24:14 +01:00
blacklist.c [S390] cio: remove custom implementation of hex_to_bin() 2010-10-25 16:10:17 +02:00
blacklist.h
ccwgroup.c [S390] cio: fix ccwgroup unregistration race condition 2011-01-05 12:47:31 +01:00
ccwreq.c [S390] ccwreq: add ability to use all paths 2010-08-09 18:12:54 +02:00
chp.c [S390] cio: update descriptor in chsc_chp_vary 2010-10-25 16:10:18 +02:00
chp.h [S390] cio: update descriptor in chsc_chp_vary 2010-10-25 16:10:18 +02:00
chsc_sch.c [S390] chsc: use the global page to determine the chp desriptor 2010-10-25 16:10:18 +02:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
chsc.c [S390] cio: obtain mdc value per channel path 2011-01-05 12:47:28 +01:00
chsc.h [S390] cio: obtain mdc value per channel path 2011-01-05 12:47:28 +01:00
cio_debug.h [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
cio.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02: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] css: update subchannel descriptor 2011-01-05 12:47:29 +01:00
css.h [S390] cio: trigger subchannel event at resume time 2010-02-26 22:37:30 +01:00
device_fsm.c [S390] cio: fix I/O cancel function 2010-10-25 16:10:20 +02:00
device_id.c [S390] cio: use all available paths for some internal I/O 2010-08-09 18:12:54 +02:00
device_ops.c [S390] cio: obtain mdc value per channel path 2011-01-05 12:47:28 +01:00
device_pgid.c [S390] cio: notify drivers of channel path events 2010-10-25 16:10:19 +02:00
device_status.c [S390] cio: remove intretry flag 2009-12-07 12:51:31 +01:00
device.c [S390] cio: fix incorrect ccw_device_init_count 2010-11-10 10:05:54 +01:00
device.h [S390] ccw_device_notify: improve return codes 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: notify drivers of channel path events 2010-10-25 16:10:19 +02:00
ioasm.h [S390] cio: remove stsch 2010-05-26 23:27:09 +02: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] qdio: convert global statistics to per-device stats 2010-01-04 09:05:58 +01:00
qdio_debug.c [S390] qdio: outbound queue full counter 2011-01-05 12:47:28 +01:00
qdio_debug.h [S390] qdio: rework debug feature logging 2008-12-25 13:38:59 +01:00
qdio_main.c [S390] qdio: cleanup SIGA sync 2011-01-05 12:47:28 +01:00
qdio_setup.c [S390] qdio: cleanup SIGA sync 2011-01-05 12:47:28 +01:00
qdio_thinint.c [S390] qdio: prevent race for shared indicators 2011-01-05 12:47:28 +01:00
qdio.h [S390] qdio: cleanup SIGA sync 2011-01-05 12:47:28 +01:00