The HIP09 supports XRC transport service, it greatly saves the number of QPs required to connect all processes in a large cluster. This series first adds support of ibv_create_qp/srq_ex which are necessary interfaces for XRC, fixes an issue about CQ locks that is also required, then XRC is fully supported at last. Lang Cheng (1): libhns: Support ibv_create_qp_ex Weihang Li (2): Update kernel headers libhns: Avoid accessing NULL pointer when locking/unlocking CQ Wenpeng Liang (2): libhns: Support ibv_create_srq_ex libhns: Add support for XRC for HIP09 kernel-headers/rdma/hns-abi.h | 2 + providers/hns/hns_roce_u.c | 28 ++- providers/hns/hns_roce_u.h | 40 +++- providers/hns/hns_roce_u_abi.h | 11 +- providers/hns/hns_roce_u_hw_v1.c | 18 +- providers/hns/hns_roce_u_hw_v2.c | 159 +++++++++----- providers/hns/hns_roce_u_hw_v2.h | 1 + providers/hns/hns_roce_u_verbs.c | 455 +++++++++++++++++++++++++++++++-------- 8 files changed, 546 insertions(+), 168 deletions(-) -- 2.8.1