Lines Matching refs:iu

213 	struct srp_iu *iu;  in srp_alloc_iu()  local
215 iu = kmalloc(sizeof *iu, gfp_mask); in srp_alloc_iu()
216 if (!iu) in srp_alloc_iu()
219 iu->buf = kzalloc(size, gfp_mask); in srp_alloc_iu()
220 if (!iu->buf) in srp_alloc_iu()
223 iu->dma = ib_dma_map_single(host->srp_dev->dev, iu->buf, size, in srp_alloc_iu()
225 if (ib_dma_mapping_error(host->srp_dev->dev, iu->dma)) in srp_alloc_iu()
228 iu->size = size; in srp_alloc_iu()
229 iu->direction = direction; in srp_alloc_iu()
231 return iu; in srp_alloc_iu()
234 kfree(iu->buf); in srp_alloc_iu()
236 kfree(iu); in srp_alloc_iu()
241 static void srp_free_iu(struct srp_host *host, struct srp_iu *iu) in srp_free_iu() argument
243 if (!iu) in srp_free_iu()
246 ib_dma_unmap_single(host->srp_dev->dev, iu->dma, iu->size, in srp_free_iu()
247 iu->direction); in srp_free_iu()
248 kfree(iu->buf); in srp_free_iu()
249 kfree(iu); in srp_free_iu()
1690 static void srp_put_tx_iu(struct srp_rdma_ch *ch, struct srp_iu *iu, in srp_put_tx_iu() argument
1696 list_add(&iu->list, &ch->free_tx); in srp_put_tx_iu()
1720 struct srp_iu *iu; in __srp_get_tx_iu() local
1737 iu = list_first_entry(&ch->free_tx, struct srp_iu, list); in __srp_get_tx_iu()
1738 list_del(&iu->list); in __srp_get_tx_iu()
1739 return iu; in __srp_get_tx_iu()
1742 static int srp_post_send(struct srp_rdma_ch *ch, struct srp_iu *iu, int len) in srp_post_send() argument
1748 list.addr = iu->dma; in srp_post_send()
1753 wr.wr_id = (uintptr_t) iu; in srp_post_send()
1762 static int srp_post_recv(struct srp_rdma_ch *ch, struct srp_iu *iu) in srp_post_recv() argument
1768 list.addr = iu->dma; in srp_post_recv()
1769 list.length = iu->size; in srp_post_recv()
1773 wr.wr_id = (uintptr_t) iu; in srp_post_recv()
1845 struct srp_iu *iu; in srp_response_common() local
1850 iu = __srp_get_tx_iu(ch, SRP_IU_RSP); in srp_response_common()
1853 if (!iu) { in srp_response_common()
1859 ib_dma_sync_single_for_cpu(dev, iu->dma, len, DMA_TO_DEVICE); in srp_response_common()
1860 memcpy(iu->buf, rsp, len); in srp_response_common()
1861 ib_dma_sync_single_for_device(dev, iu->dma, len, DMA_TO_DEVICE); in srp_response_common()
1863 err = srp_post_send(ch, iu, len); in srp_response_common()
1867 srp_put_tx_iu(ch, iu, SRP_IU_RSP); in srp_response_common()
1909 struct srp_iu *iu = (struct srp_iu *) (uintptr_t) wc->wr_id; in srp_handle_recv() local
1913 ib_dma_sync_single_for_cpu(dev, iu->dma, ch->max_ti_iu_len, in srp_handle_recv()
1916 opcode = *(u8 *) iu->buf; in srp_handle_recv()
1922 iu->buf, wc->byte_len, true); in srp_handle_recv()
1927 srp_process_rsp(ch, iu->buf); in srp_handle_recv()
1931 srp_process_cred_req(ch, iu->buf); in srp_handle_recv()
1935 srp_process_aer_req(ch, iu->buf); in srp_handle_recv()
1950 ib_dma_sync_single_for_device(dev, iu->dma, ch->max_ti_iu_len, in srp_handle_recv()
1953 res = srp_post_recv(ch, iu); in srp_handle_recv()
2025 struct srp_iu *iu; in srp_send_completion() local
2029 iu = (struct srp_iu *) (uintptr_t) wc.wr_id; in srp_send_completion()
2030 list_add(&iu->list, &ch->free_tx); in srp_send_completion()
2043 struct srp_iu *iu; in srp_queuecommand() local
2074 iu = __srp_get_tx_iu(ch, SRP_IU_CMD); in srp_queuecommand()
2077 if (!iu) in srp_queuecommand()
2082 ib_dma_sync_single_for_cpu(dev, iu->dma, target->max_iu_len, in srp_queuecommand()
2087 cmd = iu->buf; in srp_queuecommand()
2096 req->cmd = iu; in srp_queuecommand()
2113 ib_dma_sync_single_for_device(dev, iu->dma, target->max_iu_len, in srp_queuecommand()
2116 if (srp_post_send(ch, iu, len)) { in srp_queuecommand()
2133 srp_put_tx_iu(ch, iu, SRP_IU_CMD); in srp_queuecommand()
2285 struct srp_iu *iu = ch->rx_ring[i]; in srp_cm_rep_handler() local
2287 ret = srp_post_recv(ch, iu); in srp_cm_rep_handler()
2477 struct srp_iu *iu; in srp_send_tsk_mgmt() local
2491 iu = __srp_get_tx_iu(ch, SRP_IU_TSK_MGMT); in srp_send_tsk_mgmt()
2494 if (!iu) { in srp_send_tsk_mgmt()
2500 ib_dma_sync_single_for_cpu(dev, iu->dma, sizeof *tsk_mgmt, in srp_send_tsk_mgmt()
2502 tsk_mgmt = iu->buf; in srp_send_tsk_mgmt()
2511 ib_dma_sync_single_for_device(dev, iu->dma, sizeof *tsk_mgmt, in srp_send_tsk_mgmt()
2513 if (srp_post_send(ch, iu, sizeof(*tsk_mgmt))) { in srp_send_tsk_mgmt()
2514 srp_put_tx_iu(ch, iu, SRP_IU_TSK_MGMT); in srp_send_tsk_mgmt()