Lines Matching refs:recvmsg

224 *smb_direct_recvmsg_payload(struct smb_direct_recvmsg *recvmsg)  in smb_direct_recvmsg_payload()  argument
226 return (void *)recvmsg->packet; in smb_direct_recvmsg_payload()
239 struct smb_direct_recvmsg *recvmsg = NULL; in get_free_recvmsg() local
243 recvmsg = list_first_entry(&t->recvmsg_queue, in get_free_recvmsg()
246 list_del(&recvmsg->list); in get_free_recvmsg()
249 return recvmsg; in get_free_recvmsg()
253 struct smb_direct_recvmsg *recvmsg) in put_recvmsg() argument
255 ib_dma_unmap_single(t->cm_id->device, recvmsg->sge.addr, in put_recvmsg()
256 recvmsg->sge.length, DMA_FROM_DEVICE); in put_recvmsg()
259 list_add(&recvmsg->list, &t->recvmsg_queue); in put_recvmsg()
266 struct smb_direct_recvmsg *recvmsg = NULL; in get_empty_recvmsg() local
270 recvmsg = list_first_entry(&t->empty_recvmsg_queue, in get_empty_recvmsg()
272 list_del(&recvmsg->list); in get_empty_recvmsg()
275 return recvmsg; in get_empty_recvmsg()
279 struct smb_direct_recvmsg *recvmsg) in put_empty_recvmsg() argument
281 ib_dma_unmap_single(t->cm_id->device, recvmsg->sge.addr, in put_empty_recvmsg()
282 recvmsg->sge.length, DMA_FROM_DEVICE); in put_empty_recvmsg()
285 list_add_tail(&recvmsg->list, &t->empty_recvmsg_queue); in put_empty_recvmsg()
290 struct smb_direct_recvmsg *recvmsg, in enqueue_reassembly() argument
294 list_add_tail(&recvmsg->list, &t->reassembly_queue); in enqueue_reassembly()
402 struct smb_direct_recvmsg *recvmsg; in free_transport() local
424 recvmsg = get_first_reassembly(t); in free_transport()
425 if (recvmsg) { in free_transport()
426 list_del(&recvmsg->list); in free_transport()
428 put_recvmsg(t, recvmsg); in free_transport()
432 } while (recvmsg); in free_transport()
480 static int smb_direct_check_recvmsg(struct smb_direct_recvmsg *recvmsg) in smb_direct_check_recvmsg() argument
482 switch (recvmsg->type) { in smb_direct_check_recvmsg()
485 (struct smb_direct_data_transfer *)recvmsg->packet; in smb_direct_check_recvmsg()
486 struct smb2_hdr *hdr = (struct smb2_hdr *)(recvmsg->packet in smb_direct_check_recvmsg()
498 (struct smb_direct_negotiate_req *)recvmsg->packet; in smb_direct_check_recvmsg()
526 struct smb_direct_recvmsg *recvmsg; in recv_done() local
529 recvmsg = container_of(wc->wr_cqe, struct smb_direct_recvmsg, cqe); in recv_done()
530 t = recvmsg->transport; in recv_done()
539 put_empty_recvmsg(t, recvmsg); in recv_done()
547 ib_dma_sync_single_for_cpu(wc->qp->device, recvmsg->sge.addr, in recv_done()
548 recvmsg->sge.length, DMA_FROM_DEVICE); in recv_done()
550 switch (recvmsg->type) { in recv_done()
553 put_empty_recvmsg(t, recvmsg); in recv_done()
562 (struct smb_direct_data_transfer *)recvmsg->packet; in recv_done()
568 put_empty_recvmsg(t, recvmsg); in recv_done()
576 put_empty_recvmsg(t, recvmsg); in recv_done()
581 recvmsg->first_segment = true; in recv_done()
588 enqueue_reassembly(t, recvmsg, (int)data_length); in recv_done()
596 put_empty_recvmsg(t, recvmsg); in recv_done()
627 struct smb_direct_recvmsg *recvmsg) in smb_direct_post_recv() argument
632 recvmsg->sge.addr = ib_dma_map_single(t->cm_id->device, in smb_direct_post_recv()
633 recvmsg->packet, t->max_recv_size, in smb_direct_post_recv()
635 ret = ib_dma_mapping_error(t->cm_id->device, recvmsg->sge.addr); in smb_direct_post_recv()
638 recvmsg->sge.length = t->max_recv_size; in smb_direct_post_recv()
639 recvmsg->sge.lkey = t->pd->local_dma_lkey; in smb_direct_post_recv()
640 recvmsg->cqe.done = recv_done; in smb_direct_post_recv()
642 wr.wr_cqe = &recvmsg->cqe; in smb_direct_post_recv()
644 wr.sg_list = &recvmsg->sge; in smb_direct_post_recv()
651 recvmsg->sge.addr, recvmsg->sge.length, in smb_direct_post_recv()
662 struct smb_direct_recvmsg *recvmsg; in smb_direct_read() local
697 recvmsg = get_first_reassembly(st); in smb_direct_read()
698 data_transfer = smb_direct_recvmsg_payload(recvmsg); in smb_direct_read()
712 if (recvmsg->first_segment && size == 4) { in smb_direct_read()
717 recvmsg->first_segment = false; in smb_direct_read()
736 list_del(&recvmsg->list); in smb_direct_read()
739 list_del(&recvmsg->list); in smb_direct_read()
743 put_recvmsg(st, recvmsg); in smb_direct_read()
791 struct smb_direct_recvmsg *recvmsg; in smb_direct_post_recv_credits() local
803 recvmsg = get_free_recvmsg(t); in smb_direct_post_recv_credits()
805 recvmsg = get_empty_recvmsg(t); in smb_direct_post_recv_credits()
806 if (!recvmsg) { in smb_direct_post_recv_credits()
815 recvmsg->type = SMB_DIRECT_MSG_DATA_TRANSFER; in smb_direct_post_recv_credits()
816 recvmsg->first_segment = false; in smb_direct_post_recv_credits()
818 ret = smb_direct_post_recv(t, recvmsg); in smb_direct_post_recv_credits()
821 put_recvmsg(t, recvmsg); in smb_direct_post_recv_credits()
1595 struct smb_direct_recvmsg *recvmsg; in smb_direct_negotiate() local
1598 recvmsg = get_free_recvmsg(t); in smb_direct_negotiate()
1599 if (!recvmsg) in smb_direct_negotiate()
1601 recvmsg->type = SMB_DIRECT_MSG_NEGOTIATE_REQ; in smb_direct_negotiate()
1603 ret = smb_direct_post_recv(t, recvmsg); in smb_direct_negotiate()
1628 ret = smb_direct_check_recvmsg(recvmsg); in smb_direct_negotiate()
1632 req = (struct smb_direct_negotiate_req *)recvmsg->packet; in smb_direct_negotiate()
1642 if (recvmsg) in smb_direct_negotiate()
1643 put_recvmsg(t, recvmsg); in smb_direct_negotiate()
1733 struct smb_direct_recvmsg *recvmsg; in smb_direct_destroy_pools() local
1735 while ((recvmsg = get_free_recvmsg(t))) in smb_direct_destroy_pools()
1736 mempool_free(recvmsg, t->recvmsg_mempool); in smb_direct_destroy_pools()
1737 while ((recvmsg = get_empty_recvmsg(t))) in smb_direct_destroy_pools()
1738 mempool_free(recvmsg, t->recvmsg_mempool); in smb_direct_destroy_pools()
1757 struct smb_direct_recvmsg *recvmsg; in smb_direct_create_pools() local
1790 recvmsg = mempool_alloc(t->recvmsg_mempool, GFP_KERNEL); in smb_direct_create_pools()
1791 if (!recvmsg) in smb_direct_create_pools()
1793 recvmsg->transport = t; in smb_direct_create_pools()
1794 list_add(&recvmsg->list, &t->recvmsg_queue); in smb_direct_create_pools()