linux/drivers/s390/block
Stefan Haberland 6fca97a958 [S390] dasd: fix race condition in resume code
There is a race while re-reading the device characteristics. After
cleaning the memory area a cqr is build which reads the device
characteristics. This may take a rather long time and the device
characteristics structure is zero during this. Now it could be
possible that the block tasklet starts working and a new cqr will be
build. The build_cp command refers to the device characteristics
structure and this may lead into a divide by zero exception.
Fix this by re-reading the device characteristics into a temporary
structur and copy the data to the original structure. Also take the
ccwdev_lock.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-10-06 10:35:11 +02:00
..
Kconfig [S390] dasd: fix double elevator_exit call when deadline iosched fails to load 2008-04-17 07:46:55 +02:00
Makefile [S390] dasd: add hyper PAV support to DASD device driver, part 1 2008-01-26 14:11:28 +01:00
dasd.c [S390] dasd: fix race condition in resume code 2009-10-06 10:35:11 +02:00
dasd_3990_erp.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_alias.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_devmap.c [S390] pm: dasd power management callbacks. 2009-06-16 10:31:10 +02:00
dasd_diag.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_diag.h
dasd_eckd.c [S390] dasd: fix race condition in resume code 2009-10-06 10:35:11 +02:00
dasd_eckd.h [S390] dasd: add High Performance FICON support 2009-03-26 15:24:05 +01:00
dasd_eer.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_erp.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_fba.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_fba.h
dasd_genhd.c [S390] dasd: message cleanup 2009-03-26 15:24:05 +01:00
dasd_int.h const: make block_device_operations const 2009-09-22 07:17:25 -07:00
dasd_ioctl.c [S390] dasd: fix message naming 2009-09-11 10:29:42 +02:00
dasd_proc.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
dcssblk.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
xpram.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00