[PATCH 2/2] nvme-rdma: add support for arbitrary sg lists mapping

Christoph Hellwig hch at lst.de
Wed Apr 12 10:17:59 PDT 2017


> -	req->mr = ib_alloc_mr(dev->pd, IB_MR_TYPE_MEM_REG,
> +	req->mr = ib_alloc_mr(dev->pd, req->mr_type,
>  			ctrl->max_fr_pages);
>  	if (IS_ERR(req->mr)) {
>  		ret = PTR_ERR(req->mr);
> @@ -348,8 +349,12 @@ static int __nvme_rdma_init_request(struct nvme_rdma_ctrl *ctrl,
>  	if (ret)
>  		return ret;
>  
> -	req->mr = ib_alloc_mr(dev->pd, IB_MR_TYPE_MEM_REG,
> -			ctrl->max_fr_pages);
> +	if (ibdev->attrs.device_cap_flags & IB_DEVICE_SG_GAPS_REG)
> +		req->mr_type = IB_MR_TYPE_SG_GAPS;
> +	else
> +		req->mr_type = IB_MR_TYPE_MEM_REG;

Why do we need the req->mr_type member?  Can't we just check the device
aps in the reinit path as well?



More information about the Linux-nvme mailing list