]> git.ipfire.org Git - people/arne_f/kernel.git/commit
s390/dasd: fix hanging device after clear subchannel
authorStefan Haberland <sth@linux.vnet.ibm.com>
Mon, 8 Aug 2016 12:08:17 +0000 (14:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Sep 2016 06:30:00 +0000 (08:30 +0200)
commitf5a67faecf9b9be41559e7da424ba7529cdaa651
tree39bbecdbcc4fdb48529f598c09a42af286d51cc6
parentea4e60bc9cf5898e0fc2c79938521d2a7ea633bb
s390/dasd: fix hanging device after clear subchannel

commit 9ba333dc55cbb9523553df973adb3024d223e905 upstream.

When a device is in a status where CIO has killed all I/O by itself the
interrupt for a clear request may not contain an irb to determine the
clear function. Instead it contains an error pointer -EIO.
This was ignored by the DASD int_handler leading to a hanging device
waiting for a clear interrupt.

Handle -EIO error pointer correctly for requests that are clear pending and
treat the clear as successful.

Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/s390/block/dasd.c