On Thu, Dec 23, 2010 at 10:31 PM, David Dillow <dillowda@xxxxxxxx> wrote: > [ ... ] > @@ -913,14 +917,6 @@ static void srp_process_rsp(struct srp_target_port *target, struct srp_rsp *rsp) > { > struct srp_request *req; > struct scsi_cmnd *scmnd; > - unsigned long flags; > - s32 delta; > - > - delta = (s32) be32_to_cpu(rsp->req_lim_delta); > - > - spin_lock_irqsave(target->scsi_host->host_lock, flags); > - > - target->req_lim += delta; > > if (unlikely(rsp->tag & SRP_TAG_TSK_MGMT)) { > target->tsk_mgmt_status = -1; > @@ -948,12 +944,10 @@ static void srp_process_rsp(struct srp_target_port *target, struct srp_rsp *rsp) > else if (rsp->flags & (SRP_RSP_FLAG_DIOVER | SRP_RSP_FLAG_DIUNDER)) > scsi_set_resid(scmnd, be32_to_cpu(rsp->data_in_res_cnt)); > > + srp_remove_req(target, req, be32_to_cpu(rsp->req_lim_delta)); > scmnd->host_scribble = NULL; > scmnd->scsi_done(scmnd); > - srp_remove_req(target, req); > } > - > - spin_unlock_irqrestore(target->scsi_host->host_lock, flags); > } > > [ ... ] Hello Dave, Before this patch target->req_lim was updated both when receiving a response for a regular SRP command and when receiving a response for an SRP task management command. This patch modifies that in only updating target->req_lim in the former case. Are you sure that's correct ? Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html