Re: [for-next PATCH v5 03/11] RDMA: Extend RDMA kernel verbs ABI to support flush

From: Jason Gunthorpe
Date: Fri Oct 28 2022 - 13:45:13 EST


On Tue, Sep 27, 2022 at 01:53:29PM +0800, Li Zhijian wrote:
> @@ -4321,6 +4330,8 @@ int ib_dealloc_xrcd_user(struct ib_xrcd *xrcd, struct ib_udata *udata);
> static inline int ib_check_mr_access(struct ib_device *ib_dev,
> unsigned int flags)
> {
> + u64 device_cap = ib_dev->attrs.device_cap_flags;
> +
> /*
> * Local write permission is required if remote write or
> * remote atomic permission is also requested.
> @@ -4335,6 +4346,13 @@ static inline int ib_check_mr_access(struct ib_device *ib_dev,
> if (flags & IB_ACCESS_ON_DEMAND &&
> !(ib_dev->attrs.kernel_cap_flags & IBK_ON_DEMAND_PAGING))
> return -EINVAL;
> +
> + if ((flags & IB_ACCESS_FLUSH_GLOBAL &&
> + !(device_cap & IB_DEVICE_FLUSH_GLOBAL)) ||
> + (flags & IB_ACCESS_FLUSH_PERSISTENT &&
> + !(device_cap & IB_DEVICE_FLUSH_PERSISTENT)))
> + return -EINVAL;

This should be -EOPNOTSUPP as the above is changed to in for-next

Jason