IB/srp: Test only once whether iu allocation succeeded
Merge the two tests in srp_queuecommand() of whether information unit allocation succeeded into one. An intended side effect of this change is that we fix the warning: drivers/infiniband/ulp/srp/ib_srp.c: In function 'srp_queuecommand': drivers/infiniband/ulp/srp/ib_srp.c:1116: warning: 'req' may be used uninitialized in this function (seen with CONFIG_CC_OPTIMIZE_FOR_SIZE=y at least with gcc 4.4.4) Signed-off-by: Bart Van Assche <bvanassche@acm.org> Acked-by: David Dillow <dillowda@ornl.gov> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
4162cf6497
commit
695b83495e
|
@ -1132,15 +1132,12 @@ static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd)
|
||||||
|
|
||||||
spin_lock_irqsave(&target->lock, flags);
|
spin_lock_irqsave(&target->lock, flags);
|
||||||
iu = __srp_get_tx_iu(target, SRP_IU_CMD);
|
iu = __srp_get_tx_iu(target, SRP_IU_CMD);
|
||||||
if (iu) {
|
|
||||||
req = list_first_entry(&target->free_reqs, struct srp_request,
|
|
||||||
list);
|
|
||||||
list_del(&req->list);
|
|
||||||
}
|
|
||||||
spin_unlock_irqrestore(&target->lock, flags);
|
|
||||||
|
|
||||||
if (!iu)
|
if (!iu)
|
||||||
goto err;
|
goto err_unlock;
|
||||||
|
|
||||||
|
req = list_first_entry(&target->free_reqs, struct srp_request, list);
|
||||||
|
list_del(&req->list);
|
||||||
|
spin_unlock_irqrestore(&target->lock, flags);
|
||||||
|
|
||||||
dev = target->srp_host->srp_dev->dev;
|
dev = target->srp_host->srp_dev->dev;
|
||||||
ib_dma_sync_single_for_cpu(dev, iu->dma, srp_max_iu_len,
|
ib_dma_sync_single_for_cpu(dev, iu->dma, srp_max_iu_len,
|
||||||
|
@ -1185,6 +1182,8 @@ err_iu:
|
||||||
|
|
||||||
spin_lock_irqsave(&target->lock, flags);
|
spin_lock_irqsave(&target->lock, flags);
|
||||||
list_add(&req->list, &target->free_reqs);
|
list_add(&req->list, &target->free_reqs);
|
||||||
|
|
||||||
|
err_unlock:
|
||||||
spin_unlock_irqrestore(&target->lock, flags);
|
spin_unlock_irqrestore(&target->lock, flags);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
Loading…
Reference in a new issue