s390/cio: clear timer when terminating driver I/O
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Mon, 12 Feb 2018 11:01:03 +0000 (12:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 May 2018 05:52:01 +0000 (07:52 +0200)
[ Upstream commit 410d5e13e7638bc146321671e223d56495fbf3c7 ]

When we terminate driver I/O (because we need to stop using a certain
channel path) we also need to ensure that a timer (which may have been
set up using ccw_device_start_timeout) is cleared.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/s390/cio/device_fsm.c

index 8b5b4240c6dd49e16f370c4caf260559aff297ac..28837ad75712d3fd86a4e6d4bc429789c8c1dcf2 100644 (file)
@@ -897,6 +897,7 @@ void ccw_device_kill_io(struct ccw_device *cdev)
 {
        int ret;
 
+       ccw_device_set_timeout(cdev, 0);
        cdev->private->iretry = 255;
        cdev->private->async_kill_io_rc = -EIO;
        ret = ccw_device_cancel_halt_clear(cdev);