Yes, I like something like the patch below much more. (Dave's comments
make sense also though)
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -1132,16 +1132,12 @@ static int srp_queuecommand(struct Scsi_Host
> *shost, struct scsi_cmnd *scmnd)
>
> spin_lock_irqsave(&target->lock, flags);
> 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);
> - }
> + if (unlikely(!iu))
> + goto err_unlock;
> + req = list_first_entry(&target->free_reqs, struct srp_request, list);
> + list_del(&req->list);
> spin_unlock_irqrestore(&target->lock, flags);
>
> - if (!iu)
> - goto err;
> -
> dev = target->srp_host->srp_dev->dev;
> ib_dma_sync_single_for_cpu(dev, iu->dma, srp_max_iu_len,
> DMA_TO_DEVICE);
> @@ -1185,6 +1181,7 @@ err_iu:
>
> spin_lock_irqsave(&target->lock, flags);
> list_add(&req->list, &target->free_reqs);
> +err_unlock:
> spin_unlock_irqrestore(&target->lock, flags);
>
> err:
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html