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>

authored by Bart Van Assche and committed by Roland Dreier 695b8349 4162cf64

+7 -8
+7 -8
drivers/infiniband/ulp/srp/ib_srp.c
··· 1132 1133 spin_lock_irqsave(&target->lock, flags); 1134 iu = __srp_get_tx_iu(target, SRP_IU_CMD); 1135 - if (iu) { 1136 - req = list_first_entry(&target->free_reqs, struct srp_request, 1137 - list); 1138 - list_del(&req->list); 1139 - } 1140 - spin_unlock_irqrestore(&target->lock, flags); 1141 - 1142 if (!iu) 1143 - goto err; 1144 1145 dev = target->srp_host->srp_dev->dev; 1146 ib_dma_sync_single_for_cpu(dev, iu->dma, srp_max_iu_len, ··· 1182 1183 spin_lock_irqsave(&target->lock, flags); 1184 list_add(&req->list, &target->free_reqs); 1185 spin_unlock_irqrestore(&target->lock, flags); 1186 1187 err:
··· 1132 1133 spin_lock_irqsave(&target->lock, flags); 1134 iu = __srp_get_tx_iu(target, SRP_IU_CMD); 1135 if (!iu) 1136 + goto err_unlock; 1137 + 1138 + req = list_first_entry(&target->free_reqs, struct srp_request, list); 1139 + list_del(&req->list); 1140 + spin_unlock_irqrestore(&target->lock, flags); 1141 1142 dev = target->srp_host->srp_dev->dev; 1143 ib_dma_sync_single_for_cpu(dev, iu->dma, srp_max_iu_len, ··· 1185 1186 spin_lock_irqsave(&target->lock, flags); 1187 list_add(&req->list, &target->free_reqs); 1188 + 1189 + err_unlock: 1190 spin_unlock_irqrestore(&target->lock, flags); 1191 1192 err: