From: Leon Romanovsky <leonro@xxxxxxxxxx> Hi, The "QP allocation" series shows clearly how convoluted the create QP flow and especially in XRC_TGT flows, where it called to kernel verb just to pass some parameters as NULL to the user create QP verb. This series is a small step to make clean XRC_TGT flow by providing more clean user/kernel create QP verb separation. It is based on the "QP allocation" series. Thanks Leon Romanovsky (7): RDMA/mlx5: Delete not-available udata check RDMA/core: Delete duplicated and unreachable code RDMA/core: Remove protection from wrong in-kernel API usage RDMA/core: Reorganize create QP low-level functions RDMA/core: Configure selinux QP during creation RDMA/core: Properly increment and decrement QP usecnts RDMA/core: Create clean QP creations interface for uverbs drivers/infiniband/core/core_priv.h | 67 ++---- drivers/infiniband/core/uverbs_cmd.c | 30 +-- drivers/infiniband/core/uverbs_std_types_qp.c | 28 +-- drivers/infiniband/core/verbs.c | 216 ++++++++++++------ drivers/infiniband/hw/mlx5/qp.c | 3 - include/rdma/ib_verbs.h | 8 +- 6 files changed, 166 insertions(+), 186 deletions(-) -- 2.31.1