This patch series implement the SRQ(Share Receive Queue) feature for hip08. It includes the SRQ verbs and updates the poll cq verb to deal with SRQ complementions as well as add the process flow of SRQ asynchronous event. Change from V2: 1. Use xarray API instead of radix tree API 2. Fix a bug with spin unlock location in hns_roce_srq_event Change from V1: 1. Separate it from the original patchset("hns misc updates for 4.20") 2. Use spin lock instead of rcu lock in order to keep the same with qp event after analysis jason's review. Lijun Ou (4): RDMA/hns: Eanble SRQ capacity for hip08 RDMA/hns: Init SRQ table for hip08 RDMA/hns: Add SRQ support for hip08 kernel mode RDMA/hns: Add SRQ asynchronous event support drivers/infiniband/hw/hns/Makefile | 2 +- drivers/infiniband/hw/hns/hns_roce_alloc.c | 2 + drivers/infiniband/hw/hns/hns_roce_cmd.h | 4 + drivers/infiniband/hw/hns/hns_roce_device.h | 92 +++++- drivers/infiniband/hw/hns/hns_roce_hem.c | 41 ++- drivers/infiniband/hw/hns/hns_roce_hem.h | 2 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 406 +++++++++++++++++++++++-- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 95 ++++++ drivers/infiniband/hw/hns/hns_roce_main.c | 83 +++++ drivers/infiniband/hw/hns/hns_roce_mr.c | 137 ++++++++- drivers/infiniband/hw/hns/hns_roce_qp.c | 21 +- drivers/infiniband/hw/hns/hns_roce_srq.c | 456 ++++++++++++++++++++++++++++ include/uapi/rdma/hns-abi.h | 6 + 13 files changed, 1292 insertions(+), 55 deletions(-) create mode 100644 drivers/infiniband/hw/hns/hns_roce_srq.c -- 1.9.1