android_kernel_xiaomi_sm8350/drivers/s390/char
Michael Holzheu f71ad62a26 [S390] tape: Fix race condition in tape block device driver
Due to incorrect function call sequence it can happen that a tape block
request is finished before the request is taken from the block request queue.

The following sequence leads to that condition:
 * tapeblock_start_request() -> start CCW program
 * Request finishes -> IO interrupt
 * tapeblock_end_request()
 * end_that_request_last()

If blkdev_dequeue_request() has not been called before end_that_request_last(),
a kernel bug is triggered in end_that_request_last() because the request is
still queued. To solve that problem blkdev_dequeue_request() has to be called
before starting the CCW program.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-05-30 10:03:33 +02:00
..
con3215.c s390 tty: Prepare for put_char to return success/fail 2008-04-30 08:29:45 -07:00
con3270.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
ctrlchar.c
ctrlchar.h
defkeymap.c Build fix for drivers/s390/char/defkeymap.c 2008-03-04 08:01:26 -08:00
defkeymap.map
fs3270.c
Kconfig [S390] sclp: kill unused SCLP config option. 2007-07-27 12:29:18 +02:00
keyboard.c unicode diacritics support 2007-10-17 08:42:52 -07:00
keyboard.h unicode diacritics support 2007-10-17 08:42:52 -07:00
Makefile [S390] sclp: convert channel path configure code to use sync interface. 2008-01-26 14:11:10 +01:00
monreader.c [S390] Remove code duplication from monreader / dcssblk. 2008-04-17 07:47:07 +02:00
monwriter.c [S390] drivers/s390: Add missing "space" 2008-01-26 14:11:19 +01:00
raw3270.c [S390] use LIST_HEAD instead of LIST_HEAD_INIT 2008-01-26 14:11:21 +01:00
raw3270.h
sclp_cmd.c [S390] Get rid of additional_cpus kernel parameter. 2008-01-26 14:11:15 +01:00
sclp_con.c
sclp_config.c [S390] Automatically detect added cpus. 2008-04-30 13:38:44 +02:00
sclp_cpi_sys.c [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
sclp_cpi_sys.h [S390] sclp: sysfs interface for SCLP cpi 2008-01-26 14:11:08 +01:00
sclp_cpi.c [S390] sclp: sysfs interface for SCLP cpi 2008-01-26 14:11:08 +01:00
sclp_quiesce.c
sclp_rw.c [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
sclp_rw.h
sclp_sdias.c
sclp_tty.c s390 tty: Prepare for put_char to return success/fail 2008-04-30 08:29:45 -07:00
sclp_tty.h
sclp_vt220.c s390 tty: Prepare for put_char to return success/fail 2008-04-30 08:29:45 -07:00
sclp.c [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
sclp.h [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
tape_34xx.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +02:00
tape_3590.c [S390] drivers/s390/: Spelling fixes 2008-01-26 14:11:26 +01:00
tape_3590.h
tape_block.c [S390] tape: Fix race condition in tape block device driver 2008-05-30 10:03:33 +02:00
tape_char.c [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_class.c [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_class.h [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_core.c [S390] tape: Use ccw_dev_id to build cdev_id. 2008-05-15 16:52:40 +02:00
tape_proc.c s390: use non-racy method for proc entries creation 2008-04-29 08:06:21 -07:00
tape_std.c
tape_std.h
tape.h [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
tty3270.c [S390] tty3270: fix put_char fail/success conversion. 2008-05-07 09:23:02 +02:00
tty3270.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
vmcp.c [S390] vmcp cleanup 2007-07-17 13:36:19 +02:00
vmcp.h [S390] vmcp cleanup 2007-07-17 13:36:19 +02:00
vmlogrdr.c s390: fix race in device_create 2008-05-20 13:31:56 -07:00
vmur.c [S390] vmur: Use wait queue instead of mutex to serialize open 2008-04-17 07:46:59 +02:00
vmur.h [S390] vmur: Use wait queue instead of mutex to serialize open 2008-04-17 07:46:59 +02:00
vmwatchdog.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +02:00
zcore.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +02:00