• Lijun Ou's avatar
    RDMA/hns: Bugfix for mapping user db · 2557fabd
    Lijun Ou authored
    When the maximum send wr delivered by the user is zero, the qp does not
    have a sq.
    
    When allocating the sq db buffer to store the user sq pi pointer and map
    it to the kernel mode, max_send_wr is used as the trigger condition, while
    the kernel does not consider the max_send_wr trigger condition when
    mapmping db. It will cause sq record doorbell map fail and create qp fail.
    
    The failed print information as follows:
    
     hns3 0000:7d:00.1: Send cmd: tail - 418, opcode - 0x8504, flag - 0x0011, retval - 0x0000
     hns3 0000:7d:00.1: Send cmd: 0xe59dc000 0x00000000 0x00000000 0x00000000 0x00000116 0x0000ffff
     hns3 0000:7d:00.1: sq record doorbell map failed!
     hns3 0000:7d:00.1: Create RC QP failed
    
    Fixes: 0425e3e6 ("RDMA/hns: Support flush cqe for hip08 in kernel space")
    Signed-off-by: default avatarLijun Ou <oulijun@huawei.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    2557fabd
hns_roce_qp.c 31.2 KB