• L
    RDMA/hns: Bugfix for mapping user db · fb67c97c
    Lijun Ou 提交于
    [ Upstream commit 2557fabd6e29f349bfa0ac13f38ac98aa5eafc74 ]
    
    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: NLijun Ou <oulijun@huawei.com>
    Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    fb67c97c
hns_roce_qp.c 29.9 KB