On 19/11/2019 21:56, Jason Gunthorpe wrote: > On Tue, Nov 12, 2019 at 11:17:37AM +0200, Gal Pressman wrote: >> diff --git a/include/uapi/rdma/efa-abi.h b/include/uapi/rdma/efa-abi.h >> index 9599a2a62be8..442804572118 100644 >> +++ b/include/uapi/rdma/efa-abi.h >> @@ -90,12 +90,21 @@ struct efa_ibv_create_ah_resp { >> __u8 reserved_30[2]; >> }; >> >> +enum { >> + EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0, >> +}; > > This doesn't seem needed, caps should only be used if a zero filled > reply from an old kernel is not OK. This isn't a compatibility mask, it's our way to indicate the userspace whether the device supports RDMA read. Old kernel/lack of support will return 0, new kernel will return 0/1 according to the device support. >> struct efa_ibv_ex_query_device_resp { >> __u32 comp_mask; >> __u32 max_sq_wr; >> __u32 max_rq_wr; >> __u16 max_sq_sge; >> __u16 max_rq_sge; >> + __u32 max_rdma_size; >> + __u16 max_wr_rdma_sge; >> + __u8 reserved_b0[2]; >> + __u32 device_caps; >> + __u8 reserved_e0[4]; >> }; > > This has the same problem as we talked about in userspace, the > max_wr_rdma_sge duplicates the field in the normal query_device > response Sure, will remove from both.