diff options
author | Yangyang Li <liyangyang20@huawei.com> | 2019-08-09 11:41:01 +0200 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2019-08-13 18:32:37 +0200 |
commit | d7e5ca88d60c0b5e166e33bfe356e961824ce0f4 (patch) | |
tree | 06c6bc23f498b110287ef5db3339b29c09ace926 /drivers/infiniband | |
parent | RDMA/hns: Bugfix for creating qp attached to srq (diff) | |
download | linux-d7e5ca88d60c0b5e166e33bfe356e961824ce0f4.tar.xz linux-d7e5ca88d60c0b5e166e33bfe356e961824ce0f4.zip |
RDMA/hns: Modify pi vlaue when cq overflows
When exiting "for loop", the actual value of pi will be
increased by 1, which is compatible with the next calculation.
But when pi is equal to "ci + hr_cq-> ib_cq.cqe", the "break"
was called and the pi is actual value, it will lead one cqe
still existing, so the "==" should be modify to ">".
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Link: https://lore.kernel.org/r/1565343666-73193-5-git-send-email-oulijun@huawei.com
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c index 7a14f0be5019..e05a6a290a55 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -2407,7 +2407,7 @@ static void __hns_roce_v2_cq_clean(struct hns_roce_cq *hr_cq, u32 qpn, for (prod_index = hr_cq->cons_index; get_sw_cqe_v2(hr_cq, prod_index); ++prod_index) { - if (prod_index == hr_cq->cons_index + hr_cq->ib_cq.cqe) + if (prod_index > hr_cq->cons_index + hr_cq->ib_cq.cqe) break; } |