RDMA/uapi: Fix and re-organize the usage of rdma_driver_id
PATCH 1/1 RDMA/uapi: Fix and re-organize the usage of rdma_driver_id
From: Yishai Hadas <[email protected]>
Fix 'enum rdma_driver_id' to preserve other driver values before that RDMA_DRIVER_CXGB3 was deleted. As this value is UAPI we can't affect other values as of a deletion of one driver id.
In addition,
- Expose 'enum rdma_driver_id' to user applications by moving it to ib_user_ioctl_verbs.h which is exposed in rdma-core to applications.
- Drop the dependency of ib_user_ioctl_verbs.h on ib_user_verbs.h which is not really required.
--- include/uapi/rdma/ib_user_ioctl_verbs.h | 47 +++++++++++++++++++++++- include/uapi/rdma/ib_user_verbs.h | 25 ------------- include/uapi/rdma/rdma_user_ioctl_cmds.h | 21 ----------- 3 files changed, 46 insertions(+), 47 deletions(-)
include/uapi/rdma/ib_user_ioctl_verbs.h +46 -1
@@ -35,7 +35,6 @@#define IB_USER_IOCTL_VERBS_H #include <linux/types.h> -#include <rdma/ib_user_verbs.h> #ifndef RDMA_UAPI_PTR #define RDMA_UAPI_PTR (_type, _name) __aligned_u64 _name
@@ -167,10 +166,56 @@ enum ib_uverbs_advise_mr_flag { IB_UVERBS_ADVISE_MR_FLAG_FLUSH = 1 << 0, }; +struct ib_uverbs_query_port_resp { +__u32 port_cap_flags;/* see ib_uverbs_query_port_cap_flags */ +__u32 max_msg_sz; +__u32 bad_pkey_cntr; +__u32 qkey_viol_cntr; +__u32 gid_tbl_len; +__u16 pkey_tbl_len; +__u16 lid; +__u16 sm_lid; +__u8 state; +__u8 max_mtu; +__u8 active_mtu; +__u8 lmc; +__u8 max_vl_num; +__u8 sm_sl; +__u8 subnet_timeout; +__u8 init_type_reply; +__u8 active_width; +__u8 active_speed; +__u8 phys_state; +__u8 link_layer; +__u8 flags;/* see ib_uverbs_query_port_flags */ +__u8 reserved; +}; +struct ib_uverbs_query_port_resp_ex {struct ib_uverbs_query_port_resp legacy_resp;__u16 port_cap_flags2;__u8 reserved[6 ]; }; +enum rdma_driver_id { +RDMA_DRIVER_UNKNOWN , +RDMA_DRIVER_MLX5 , +RDMA_DRIVER_MLX4 , +RDMA_DRIVER_CXGB4 =4 , +RDMA_DRIVER_MTHCA , +RDMA_DRIVER_BNXT_RE , +RDMA_DRIVER_OCRDMA , +RDMA_DRIVER_NES , +RDMA_DRIVER_I40IW , +RDMA_DRIVER_VMW_PVRDMA , +RDMA_DRIVER_QEDR , +RDMA_DRIVER_HNS , +RDMA_DRIVER_USNIC , +RDMA_DRIVER_RXE , +RDMA_DRIVER_HFI1 , +RDMA_DRIVER_QIB , +RDMA_DRIVER_EFA , +RDMA_DRIVER_SIW , +}; +#endif
include/uapi/rdma/ib_user_verbs.h +0 -25
@@ -281,31 +281,6 @@ struct ib_uverbs_query_port {__aligned_u64 driver_data[0 ]; }; -struct ib_uverbs_query_port_resp { -__u32 port_cap_flags;/* see ib_uverbs_query_port_cap_flags */ -__u32 max_msg_sz; -__u32 bad_pkey_cntr; -__u32 qkey_viol_cntr; -__u32 gid_tbl_len; -__u16 pkey_tbl_len; -__u16 lid; -__u16 sm_lid; -__u8 state; -__u8 max_mtu; -__u8 active_mtu; -__u8 lmc; -__u8 max_vl_num; -__u8 sm_sl; -__u8 subnet_timeout; -__u8 init_type_reply; -__u8 active_width; -__u8 active_speed; -__u8 phys_state; -__u8 link_layer; -__u8 flags;/* see ib_uverbs_query_port_flags */ -__u8 reserved; -}; -struct ib_uverbs_alloc_pd {__aligned_u64 response;__aligned_u64 driver_data[0 ];
include/uapi/rdma/rdma_user_ioctl_cmds.h +0 -21
@@ -84,25 +84,4 @@ struct ib_uverbs_ioctl_hdr { struct ib_uverbs_attr attrs[0]; }; -enum rdma_driver_id { -RDMA_DRIVER_UNKNOWN , -RDMA_DRIVER_MLX5 , -RDMA_DRIVER_MLX4 , -RDMA_DRIVER_CXGB4 , -RDMA_DRIVER_MTHCA , -RDMA_DRIVER_BNXT_RE , -RDMA_DRIVER_OCRDMA , -RDMA_DRIVER_NES , -RDMA_DRIVER_I40IW , -RDMA_DRIVER_VMW_PVRDMA , -RDMA_DRIVER_QEDR , -RDMA_DRIVER_HNS , -RDMA_DRIVER_USNIC , -RDMA_DRIVER_RXE , -RDMA_DRIVER_HFI1 , -RDMA_DRIVER_QIB , -RDMA_DRIVER_EFA , -RDMA_DRIVER_SIW , -}; -#endif
Signature · 1 line
2.20.1
Quoted 6 lines · Leon Romanovsky
From: Yishai Hadas <[email protected]>
Fix 'enum
rdma_driver_id' to preserve other driver values before thatRDMA_DRIVER_CXGB3was deleted. As this value is UAPI we can't affect other values as of a deletion of one driver id.
Quoted 6 lines
In addition,
- Expose 'enumrdma_driver_id' to user applications by moving it toib_user_ioctl_verbs.hwhich is exposed in rdma-core to applications.- Drop the dependency of
ib_user_ioctl_verbs.honib_user_verbs.hwhich is not really required.
One change per patch when it is a fixes..
Quoted 37 lines
Fixes 30e0f6cf5acb ("RDMA/iw_cxgb3: Remove the iw_cxgb3 module from kernel")Signed-off-by Yishai Hadas <[email protected]>Signed-off-by Leon Romanovsky <[email protected]>include/uapi/rdma/ib_user_ioctl_verbs.h | 47 +++++++++++++++++++++++- include/uapi/rdma/ib_user_verbs.h | 25 ------------- include/uapi/rdma/rdma_user_ioctl_cmds.h | 21 ----------- 3 files changed, 46 insertions(+), 47 deletions(-)include/uapi/rdma/ib_user_ioctl_verbs.h +15
-1+++ b/include/uapi/rdma/ib_user_ioctl_verbs.h@@ -35,7 +35,6 @@#define IB_USER_IOCTL_VERBS_H #include <linux/types.h> -#include <rdma/ib_user_verbs.h> #ifndef RDMA_UAPI_PTR #define RDMA_UAPI_PTR (_type, _name) __aligned_u64 _name@@ -167,10 +166,56 @@ enum ib_uverbs_advise_mr_flag { IB_UVERBS_ADVISE_MR_FLAG_FLUSH = 1 << 0, }; +struct ib_uverbs_query_port_resp { +__u32 port_cap_flags;/* see ib_uverbs_query_port_cap_flags */ +__u32 max_msg_sz; +__u32 bad_pkey_cntr; +__u32 qkey_viol_cntr; +__u32 gid_tbl_len; +__u16 pkey_tbl_len; +__u16 lid; +__u16 sm_lid; +__u8 state; +__u8 max_mtu; +__u8 active_mtu; +__u8 lmc; +__u8 max_vl_num;
include/uapi/rdma/ib_user_ioctl_verbs.h enum ib_uverbs_advise_mr_flag { · line 192
Quoted 10 lines
include/uapi/rdma/ib_user_ioctl_verbs.h +10
-0+__u8 sm_sl; +__u8 subnet_timeout; +__u8 init_type_reply; +__u8 active_width; +__u8 active_speed; +__u8 phys_state; +__u8 link_layer; +__u8 flags;/* see ib_uverbs_query_port_flags */ +__u8 reserved; +};
Probably better to move ib_uverbs_query_port_resp_ex, since it is really more of write() style interface
Jason
Quoted 58 lines · Jason Gunthorpe
Quoted 6 lines · Leon Romanovsky
From: Yishai Hadas <[email protected]>
Fix 'enum
rdma_driver_id' to preserve other driver values before thatRDMA_DRIVER_CXGB3was deleted. As this value is UAPI we can't affect other values as of a deletion of one driver id.Quoted 6 lines
In addition,
- Expose 'enumrdma_driver_id' to user applications by moving it toib_user_ioctl_verbs.hwhich is exposed in rdma-core to applications.- Drop the dependency of
ib_user_ioctl_verbs.honib_user_verbs.hwhich is not really required.One change per patch when it is a fixes..
Quoted 42 lines
Fixes 30e0f6cf5acb ("RDMA/iw_cxgb3: Remove the iw_cxgb3 module from kernel")Signed-off-by Yishai Hadas <[email protected]>Signed-off-by Leon Romanovsky <[email protected]>include/uapi/rdma/ib_user_ioctl_verbs.h | 47 +++++++++++++++++++++++- include/uapi/rdma/ib_user_verbs.h | 25 ------------- include/uapi/rdma/rdma_user_ioctl_cmds.h | 21 ----------- 3 files changed, 46 insertions(+), 47 deletions(-)include/uapi/rdma/ib_user_ioctl_verbs.h +20
-1+++ b/include/uapi/rdma/ib_user_ioctl_verbs.h@@ -35,7 +35,6 @@#define IB_USER_IOCTL_VERBS_H #include <linux/types.h> -#include <rdma/ib_user_verbs.h> #ifndef RDMA_UAPI_PTR #define RDMA_UAPI_PTR (_type, _name) __aligned_u64 _name@@ -167,10 +166,56 @@ enum ib_uverbs_advise_mr_flag { IB_UVERBS_ADVISE_MR_FLAG_FLUSH = 1 << 0, }; +struct ib_uverbs_query_port_resp { +__u32 port_cap_flags;/* see ib_uverbs_query_port_cap_flags */ +__u32 max_msg_sz; +__u32 bad_pkey_cntr; +__u32 qkey_viol_cntr; +__u32 gid_tbl_len; +__u16 pkey_tbl_len; +__u16 lid; +__u16 sm_lid; +__u8 state; +__u8 max_mtu; +__u8 active_mtu; +__u8 lmc; +__u8 max_vl_num; +__u8 sm_sl; +__u8 subnet_timeout; +__u8 init_type_reply; +__u8 active_width; +__u8 active_speed;
Quoted 8 lines
include/uapi/rdma/ib_user_ioctl_verbs.h enum ib_uverbs_advise_mr_flag { · line 192
Quoted 5 lines
include/uapi/rdma/ib_user_ioctl_verbs.h +5
-0+__u8 phys_state; +__u8 link_layer; +__u8 flags;/* see ib_uverbs_query_port_flags */ +__u8 reserved; +};Probably better to move
ib_uverbs_query_port_resp_ex, since it is really more ofwrite()style interface
It is already in ib_user_ioctl_verbs.h.
Thanks
Quoted 2 lines
Jason