Lines Matching refs:iu
215 struct srp_iu *iu; in srp_alloc_iu() local
217 iu = kmalloc(sizeof *iu, gfp_mask); in srp_alloc_iu()
218 if (!iu) in srp_alloc_iu()
221 iu->buf = kzalloc(size, gfp_mask); in srp_alloc_iu()
222 if (!iu->buf) in srp_alloc_iu()
225 iu->dma = ib_dma_map_single(host->srp_dev->dev, iu->buf, size, in srp_alloc_iu()
227 if (ib_dma_mapping_error(host->srp_dev->dev, iu->dma)) in srp_alloc_iu()
230 iu->size = size; in srp_alloc_iu()
231 iu->direction = direction; in srp_alloc_iu()
233 return iu; in srp_alloc_iu()
236 kfree(iu->buf); in srp_alloc_iu()
238 kfree(iu); in srp_alloc_iu()
243 static void srp_free_iu(struct srp_host *host, struct srp_iu *iu) in srp_free_iu() argument
245 if (!iu) in srp_free_iu()
248 ib_dma_unmap_single(host->srp_dev->dev, iu->dma, iu->size, in srp_free_iu()
249 iu->direction); in srp_free_iu()
250 kfree(iu->buf); in srp_free_iu()
251 kfree(iu); in srp_free_iu()
1632 static void srp_put_tx_iu(struct srp_rdma_ch *ch, struct srp_iu *iu, in srp_put_tx_iu() argument
1638 list_add(&iu->list, &ch->free_tx); in srp_put_tx_iu()
1662 struct srp_iu *iu; in __srp_get_tx_iu() local
1679 iu = list_first_entry(&ch->free_tx, struct srp_iu, list); in __srp_get_tx_iu()
1680 list_del(&iu->list); in __srp_get_tx_iu()
1681 return iu; in __srp_get_tx_iu()
1684 static int srp_post_send(struct srp_rdma_ch *ch, struct srp_iu *iu, int len) in srp_post_send() argument
1690 list.addr = iu->dma; in srp_post_send()
1695 wr.wr_id = (uintptr_t) iu; in srp_post_send()
1704 static int srp_post_recv(struct srp_rdma_ch *ch, struct srp_iu *iu) in srp_post_recv() argument
1710 list.addr = iu->dma; in srp_post_recv()
1711 list.length = iu->size; in srp_post_recv()
1715 wr.wr_id = (uintptr_t) iu; in srp_post_recv()
1787 struct srp_iu *iu; in srp_response_common() local
1792 iu = __srp_get_tx_iu(ch, SRP_IU_RSP); in srp_response_common()
1795 if (!iu) { in srp_response_common()
1801 ib_dma_sync_single_for_cpu(dev, iu->dma, len, DMA_TO_DEVICE); in srp_response_common()
1802 memcpy(iu->buf, rsp, len); in srp_response_common()
1803 ib_dma_sync_single_for_device(dev, iu->dma, len, DMA_TO_DEVICE); in srp_response_common()
1805 err = srp_post_send(ch, iu, len); in srp_response_common()
1809 srp_put_tx_iu(ch, iu, SRP_IU_RSP); in srp_response_common()
1851 struct srp_iu *iu = (struct srp_iu *) (uintptr_t) wc->wr_id; in srp_handle_recv() local
1855 ib_dma_sync_single_for_cpu(dev, iu->dma, ch->max_ti_iu_len, in srp_handle_recv()
1858 opcode = *(u8 *) iu->buf; in srp_handle_recv()
1864 iu->buf, wc->byte_len, true); in srp_handle_recv()
1869 srp_process_rsp(ch, iu->buf); in srp_handle_recv()
1873 srp_process_cred_req(ch, iu->buf); in srp_handle_recv()
1877 srp_process_aer_req(ch, iu->buf); in srp_handle_recv()
1892 ib_dma_sync_single_for_device(dev, iu->dma, ch->max_ti_iu_len, in srp_handle_recv()
1895 res = srp_post_recv(ch, iu); in srp_handle_recv()
1966 struct srp_iu *iu; in srp_send_completion() local
1970 iu = (struct srp_iu *) (uintptr_t) wc.wr_id; in srp_send_completion()
1971 list_add(&iu->list, &ch->free_tx); in srp_send_completion()
1984 struct srp_iu *iu; in srp_queuecommand() local
2015 iu = __srp_get_tx_iu(ch, SRP_IU_CMD); in srp_queuecommand()
2018 if (!iu) in srp_queuecommand()
2023 ib_dma_sync_single_for_cpu(dev, iu->dma, target->max_iu_len, in srp_queuecommand()
2028 cmd = iu->buf; in srp_queuecommand()
2037 req->cmd = iu; in srp_queuecommand()
2054 ib_dma_sync_single_for_device(dev, iu->dma, target->max_iu_len, in srp_queuecommand()
2057 if (srp_post_send(ch, iu, len)) { in srp_queuecommand()
2074 srp_put_tx_iu(ch, iu, SRP_IU_CMD); in srp_queuecommand()
2226 struct srp_iu *iu = ch->rx_ring[i]; in srp_cm_rep_handler() local
2228 ret = srp_post_recv(ch, iu); in srp_cm_rep_handler()
2418 struct srp_iu *iu; in srp_send_tsk_mgmt() local
2432 iu = __srp_get_tx_iu(ch, SRP_IU_TSK_MGMT); in srp_send_tsk_mgmt()
2435 if (!iu) { in srp_send_tsk_mgmt()
2441 ib_dma_sync_single_for_cpu(dev, iu->dma, sizeof *tsk_mgmt, in srp_send_tsk_mgmt()
2443 tsk_mgmt = iu->buf; in srp_send_tsk_mgmt()
2452 ib_dma_sync_single_for_device(dev, iu->dma, sizeof *tsk_mgmt, in srp_send_tsk_mgmt()
2454 if (srp_post_send(ch, iu, sizeof(*tsk_mgmt))) { in srp_send_tsk_mgmt()
2455 srp_put_tx_iu(ch, iu, SRP_IU_TSK_MGMT); in srp_send_tsk_mgmt()