atomic_inc(&fcport->ios_to_queue);
 
        if (fcport->retry_delay_timestamp) {
+               /* Take fcport->rport_lock for resetting the delay_timestamp */
+               spin_lock_irqsave(&fcport->rport_lock, flags);
                if (time_after(jiffies, fcport->retry_delay_timestamp)) {
                        fcport->retry_delay_timestamp = 0;
                } else {
+                       spin_unlock_irqrestore(&fcport->rport_lock, flags);
                        /* If retry_delay timer is active, flow off the ML */
                        rc = SCSI_MLQUEUE_TARGET_BUSY;
                        atomic_dec(&fcport->ios_to_queue);
                        goto exit_qcmd;
                }
+               spin_unlock_irqrestore(&fcport->rport_lock, flags);
        }
 
        io_req = qedf_alloc_cmd(fcport, QEDF_SCSI_CMD);