aboutsummaryrefslogtreecommitdiff
path: root/arch/s390/lib/delay.c
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2009-10-06 10:34:15 +0200
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2009-10-06 10:35:11 +0200
commit6fca97a958bc3c67566aa91eafc6a5be2e66d6b3 (patch)
tree9e5ca7c9c3d14c45f469feb58cab15212cee9d6b /arch/s390/lib/delay.c
parentaf9d2ff9afaae8040dbf09238b2579f92c93579e (diff)
[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>
Diffstat (limited to 'arch/s390/lib/delay.c')
0 files changed, 0 insertions, 0 deletions