]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
RDMA/qedr: Fix doorbell setting
authorMichal Kalderon <michal.kalderon@marvell.com>
Wed, 2 Sep 2020 16:57:35 +0000 (19:57 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:11:42 +0000 (10:11 +0100)
[ Upstream commit 0b1eddc1964351cd5ce57aff46853ed4ce9ebbff ]

Change the doorbell setting so that the maximum value between the last and
current value is set. This is to avoid doorbells being lost.

Fixes: a7efd7773e31 ("qedr: Add support for PD,PKEY and CQ verbs")
Link: https://lore.kernel.org/r/20200902165741.8355-3-michal.kalderon@marvell.com
Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/qedr/verbs.c

index ae22bb8fe19b89019493cf36379d4f902230856e..c61bdf97231f8a87a1ca37dc7a6349f13448b27a 100644 (file)
@@ -999,7 +999,7 @@ int qedr_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
                /* Generate doorbell address. */
                cq->db.data.icid = cq->icid;
                cq->db_addr = dev->db_addr + db_offset;
-               cq->db.data.params = DB_AGG_CMD_SET <<
+               cq->db.data.params = DB_AGG_CMD_MAX <<
                    RDMA_PWM_VAL32_DATA_AGG_CMD_SHIFT;
 
                /* point to the very last element, passing it we will toggle */