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

Reply via email to