Lines Matching refs:target
20 #include <target/target_core_base.h>
104 int srp_target_alloc(struct srp_target *target, struct device *dev,
109 spin_lock_init(&target->lock);
111 target->dev = dev;
113 target->srp_iu_size = iu_size;
114 target->rx_ring_size = nr;
115 target->rx_ring = srp_ring_alloc(target->dev, nr, iu_size);
116 if (!target->rx_ring)
118 err = srp_iu_pool_alloc(&target->iu_queue, nr, target->rx_ring);
122 dev_set_drvdata(target->dev, target);
126 srp_ring_free(target->dev, target->rx_ring, nr, iu_size);
130 void srp_target_free(struct srp_target *target)
132 dev_set_drvdata(target->dev, NULL);
133 srp_ring_free(target->dev, target->rx_ring, target->rx_ring_size,
134 target->srp_iu_size);
135 srp_iu_pool_free(&target->iu_queue);
138 struct iu_entry *srp_iu_get(struct srp_target *target)
142 if (kfifo_out_locked(&target->iu_queue.queue, (void *)&iue,
144 &target->iu_queue.lock) != sizeof(void *)) {
150 iue->target = target;
157 kfifo_in_locked(&iue->target->iu_queue.queue, (void *)&iue,
158 sizeof(void *), &iue->target->iu_queue.lock);
172 nsg = dma_map_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
187 dma_unmap_sg(iue->target->dev, sg, nsg, DMA_BIDIRECTIONAL);
218 md = dma_alloc_coherent(iue->target->dev,
243 nsg = dma_map_sg(iue->target->dev, sg, cmd->se_cmd.t_data_nents,
259 dma_unmap_sg(iue->target->dev, sg, nsg, DMA_BIDIRECTIONAL);
263 dma_free_coherent(iue->target->dev,