Re: [PATCH] RDMA/mlx5: return the EFAULT per ibv_advise_mr(3)

From: Li, Zhijian
Date: Sat Aug 28 2021 - 04:43:11 EST


Just noticed that there is another code path i was missing will return EINVAL
when get_prefetchable_mr returns NULL

ENOENT:
mlx5_ib_advise_mr_prefetch()
-> mlx5_ib_prefetch_sg_list()
-> get_prefetchable_mr()
return -ENOENT;


EINVAL:
mlx5_ib_advise_mr_prefetch
->init_prefetch_work()
-> get_prefetchable_mr()
return -EINVAL;

where get_prefetchable_mr will check pd and write access & key
So which value we should return ?

Thanks

on 2021/8/26 9:18, Li, Zhijian wrote:

On 26/08/2021 01:28, Jason Gunthorpe wrote:
On Sat, Aug 21, 2021 at 05:44:43PM +0800, Li, Zhijian wrote:
convert to text and send again


Hi Jason & Leon

It reminds me that ibv_advise_mr doesn't mention ENOENT any more which value the API actually returns now.
the ENOENT cases/situations returned by kernel mlx5 implementation is most likely same with EINVALL as its manpage[1].

So shall we return EINVAL instead of ENOENT in kernel side when get_prefetchable_mr returns NULL?
No, the man page should be fixed
thanks a lot, i have submitted a RP to rdma-core https://github.com/linux-rdma/rdma-core/pull/1048

Thanks
Zhijian

Jason