Hi, This patch series introduces support for the RoCEv2 protocol into the erdma driver. As the most prevalent RDMA protocol, RoCEv2 is widely used in the production environment. Given the extensive application of erdma across various scenarios in the Alibaba Cloud, there has arisen a requirement for erdma to support the RoCEv2 protocol. Therefore, we update both the erdma hardware and the erdma driver to accommodate the RoCEv2 protocol. - #1 adds the device probe logic for the erdma RoCEv2 device. - #2~#4 implement resource management interfaces required by the erdma RoCEv2 device, such as the GID table, PKey and address handle. - #5~#6 implment the modify QP interface for the erdma RoCEv2 device and refactor the code of modify_qp interface to improve readability. - #7 introduces the query_qp command to obtain several qp attributes from the hardware. - #8 extends the procedure for create_qp, post_send and poll_cq interfaces to support UD QPs and UD WRs. Thanks, Boshi Yu --- v2: - Patch#1: remove the unnecessary check for device protocol. - Patch#1: remove the erdma_device_init_iwarp() and erdma_device_init_rocev2() functions, as they are simple and used only once. - Patch#4: move the function definitions of erdma_av_to_attr(), erdma_attr_to_av(), and erdma_set_av_cfg() to patch#5, where they are used for more than once. - Patch#6: remove the declaration of deprecated erdma_modify_qp_rocev2(). - Patch#6: replace the 'reformat' with 'refactor' in the commit message for clarity. v1: link: https://lore.kernel.org/all/20241126070351.92787-1-boshiyu@xxxxxxxxxxxxxxxxx/ Boshi Yu (8): RDMA/erdma: Probe the erdma RoCEv2 device RDMA/erdma: Add GID table management interfaces RDMA/erdma: Add the erdma_query_pkey() interface RDMA/erdma: Add address handle implementation RDMA/erdma: Add erdma_modify_qp_rocev2() interface RDMA/erdma: Refactor the code of the modify_qp interface RDMA/erdma: Add the query_qp command to the cmdq RDMA/erdma: Support UD QPs and UD WRs drivers/infiniband/hw/erdma/Kconfig | 2 +- drivers/infiniband/hw/erdma/erdma.h | 8 +- drivers/infiniband/hw/erdma/erdma_cm.c | 71 +-- drivers/infiniband/hw/erdma/erdma_cq.c | 65 +++ drivers/infiniband/hw/erdma/erdma_hw.h | 135 +++++- drivers/infiniband/hw/erdma/erdma_main.c | 44 +- drivers/infiniband/hw/erdma/erdma_qp.c | 299 +++++++++--- drivers/infiniband/hw/erdma/erdma_verbs.c | 524 +++++++++++++++++++--- drivers/infiniband/hw/erdma/erdma_verbs.h | 166 +++++-- 9 files changed, 1116 insertions(+), 198 deletions(-) -- 2.43.5