mtip32xx: fix for driver hang after a command timeout
PATCH 2/3 mtip32xx: fix for driver hang after a command timeout
If an I/O command times out when a PIO command is active, MTIP_PF_EH_ACTIVE_BIT is not cleared. This results in I/O hang in the driver. Fix is to clear this bit.
Signed-off-by Asai Thambi S P <[email protected]>
--- drivers/block/mtip32xx/mtip32xx.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
drivers/block/mtip32xx/mtip32xx.c +5 -4
@@ -625,12 +625,13 @@ static void mtip_timeout_function(unsigned long int data) } } -if (cmdto_cnt && !test_bit (MTIP_PF_IC_ACTIVE_BIT , &port->flags)) { +if (cmdto_cnt) {print_tags (port->dd,"timed out" , tagaccum, cmdto_cnt); - -mtip_restart_port (port); +if (!test_bit (MTIP_PF_IC_ACTIVE_BIT , &port->flags)) { +mtip_restart_port (port); +wake_up_interruptible (&port->svc_wait); + }clear_bit (MTIP_PF_EH_ACTIVE_BIT , &port->flags); -wake_up_interruptible (&port->svc_wait); }if (port->ic_pause_timer) {
Signature · 1 line
1.7.1