fnic: potential dead lock in fnic_is_abts_pending()
Subsystems (3)
PATCH 1/1 fnic: potential dead lock in fnic_is_abts_pending()
There is an unlock missing if the = FNIC_IOREQ_ABTS_PENDING is false.
Signed-off-by Dan Carpenter <[email protected]>
---
Static analysis. I can't test this.
drivers/scsi/fnic/fnic_scsi.c +2 -4
@@ -2432,11 +2432,9 @@ int fnic_is_abts_pending(struct fnic *fnic, struct scsi_cmnd *lr_sc)"Found IO in %s on lun\n" , fnic_ioreq_state_to_str(CMD_STATE(sc))); -if (CMD_STATE (sc) =FNIC_IOREQ_ABTS_PENDING ) { -spin_unlock_irqrestore (io_lock, flags); +if (CMD_STATE (sc) =FNIC_IOREQ_ABTS_PENDING ) ret =1 ; -continue ; - } +spin_unlock_irqrestore (io_lock, flags); }return ret;
Quoted 25 lines · Dan Carpenter
There is an unlock missing if the =
FNIC_IOREQ_ABTS_PENDINGis false.Signed-off-by Dan Carpenter <[email protected]>---
Static analysis. I can't test this.drivers/scsi/fnic/fnic_scsi.c +2
-4@@ -2432,11 +2432,9 @@ int fnic_is_abts_pending(struct fnic *fnic, struct scsi_cmnd *lr_sc)"Found IO in %s on lun\n" , fnic_ioreq_state_to_str(CMD_STATE(sc))); -if (CMD_STATE (sc) =FNIC_IOREQ_ABTS_PENDING ) { -spin_unlock_irqrestore (io_lock, flags); +if (CMD_STATE (sc) =FNIC_IOREQ_ABTS_PENDING ) ret =1 ; -continue ; - } +spin_unlock_irqrestore (io_lock, flags); }
Quoted 1 line
return ret;
Tested-by Hiral Patel <[email protected]>
Acked-by Hiral Patel <[email protected]>