This series refactor qp related code, including creating, destroying qp and so on to make the processs easier to understand and maintain. Previous disscussion can be found at: https://patchwork.kernel.org/cover/11372841/ https://patchwork.kernel.org/cover/11341265/ Changes since v3: - Fix wrong judgments of inlen and outlen in udata to maintain compatibility in patch 7/7. Other similar issues in hns driver will be fixed by another patch. Changes since v2: - Change some macros into static inline functions as Jason suggested. - Unify all prints into format of "Failed to xxx". Changes since v1: - Reduce the number of prints as Leon suggested. - Fix a wrong function name in description of patch 4/7. Xi Wang (7): RDMA/hns: Optimize qp destroy flow RDMA/hns: Optimize qp context create and destroy flow RDMA/hns: Optimize qp number assign flow RDMA/hns: Optimize qp buffer allocation flow RDMA/hns: Optimize qp param setup flow RDMA/hns: Optimize kernel qp wrid allocation flow RDMA/hns: Optimize qp doorbell allocation flow drivers/infiniband/hw/hns/hns_roce_device.h | 6 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 19 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 43 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 808 ++++++++++++++++------------ 4 files changed, 465 insertions(+), 411 deletions(-) -- 2.8.1