Lines Matching refs:sg

491 				     struct ib_sge *sg)
495 dma_unmap_single(ddev, sg->addr, sg->length, DMA_TO_DEVICE);
496 mlx5r_umr_free_xlt(xlt, sg->length);
502 static void *mlx5r_umr_create_xlt(struct mlx5_ib_dev *dev, struct ib_sge *sg,
513 sg->length = nents * ent_size;
514 dma = dma_map_single(ddev, xlt, sg->length, DMA_TO_DEVICE);
517 mlx5r_umr_free_xlt(xlt, sg->length);
520 sg->addr = dma;
521 sg->lkey = dev->umrc.pd->local_dma_lkey;
528 unsigned int flags, struct ib_sge *sg)
537 cpu_to_be16(mlx5r_umr_get_xlt_octo(sg->length));
556 struct ib_sge *sg)
558 data_seg->byte_count = cpu_to_be32(sg->length);
559 data_seg->lkey = cpu_to_be32(sg->lkey);
560 data_seg->addr = cpu_to_be64(sg->addr);
575 struct mlx5_ib_mr *mr, struct ib_sge *sg,
602 cpu_to_be16(mlx5r_umr_get_xlt_octo(sg->length));
603 wqe->data_seg.byte_count = cpu_to_be32(sg->length);
621 struct ib_sge sg;
629 dev, &sg, ib_umem_num_dma_blocks(mr->umem, 1 << mr->page_shift),
634 orig_sg_length = sg.length;
636 mlx5r_umr_set_update_xlt_ctrl_seg(&wqe.ctrl_seg, flags, &sg);
639 mlx5r_umr_set_update_xlt_data_seg(&wqe.data_seg, &sg);
643 if (cur_mtt == (void *)mtt + sg.length) {
644 dma_sync_single_for_device(ddev, sg.addr, sg.length,
651 dma_sync_single_for_cpu(ddev, sg.addr, sg.length,
653 offset += sg.length;
670 sg.length = ALIGN(final_size, MLX5_UMR_FLEX_ALIGNMENT);
671 memset(cur_mtt, 0, sg.length - final_size);
672 mlx5r_umr_final_update_xlt(dev, &wqe, mr, &sg, flags);
674 dma_sync_single_for_device(ddev, sg.addr, sg.length, DMA_TO_DEVICE);
678 sg.length = orig_sg_length;
679 mlx5r_umr_unmap_free_xlt(dev, mtt, &sg);
704 struct ib_sge sg;
724 xlt = mlx5r_umr_create_xlt(dev, &sg, npages, desc_size, flags);
728 pages_iter = sg.length / desc_size;
729 orig_sg_length = sg.length;
738 mlx5r_umr_set_update_xlt_ctrl_seg(&wqe.ctrl_seg, flags, &sg);
740 mlx5r_umr_set_update_xlt_data_seg(&wqe.data_seg, &sg);
747 dma_sync_single_for_cpu(ddev, sg.addr, sg.length,
750 dma_sync_single_for_device(ddev, sg.addr, sg.length,
752 sg.length = ALIGN(size_to_map, MLX5_UMR_FLEX_ALIGNMENT);
755 mlx5r_umr_final_update_xlt(dev, &wqe, mr, &sg, flags);
759 sg.length = orig_sg_length;
760 mlx5r_umr_unmap_free_xlt(dev, xlt, &sg);