RDMA/irdma: Don't arm the CQ more than two times if no CE for this CQ
authorTatyana Nikolova <tatyana.e.nikolova@intel.com>
Wed, 1 Dec 2021 23:15:09 +0000 (17:15 -0600)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 7 Dec 2021 17:53:01 +0000 (13:53 -0400)
commit10467ce09fefa2e74359f5b2ab1efb8909402f19
treeaa0fcafe6409bdc4ad053cbf861055dcfc7dd0d6
parent25b5d6fd6d13b2de3780a0ae247befc43c4576fe
RDMA/irdma: Don't arm the CQ more than two times if no CE for this CQ

Completion events (CEs) are lost if the application is allowed to arm the
CQ more than two times when no new CE for this CQ has been generated by
the HW.

Check if arming has been done for the CQ and if not, arm the CQ for any
event otherwise promote to arm the CQ for any event only when the last arm
event was solicited.

Fixes: b48c24c2d710 ("RDMA/irdma: Implement device supported verb APIs")
Link: https://lore.kernel.org/r/20211201231509.1930-2-shiraz.saleem@intel.com
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/irdma/hw.c
drivers/infiniband/hw/irdma/main.h
drivers/infiniband/hw/irdma/utils.c
drivers/infiniband/hw/irdma/verbs.c
drivers/infiniband/hw/irdma/verbs.h