diff mbox series

RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"

Message ID 47ed717c3070a1d0f53e7b4c768a4fd11caf365d.1636707421.git.christophe.jaillet@wanadoo.fr (mailing list archive)
State Accepted
Delegated to: Jason Gunthorpe
Headers show
Series RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit" | expand

Commit Message

Christophe JAILLET Nov. 12, 2021, 8:59 a.m. UTC
The 'cmdq->cmdq_bitmap' bitmap is 'rcfw->cmdq_depth' bits long.
The size stored in 'cmdq->bmap_size' is the size of the bitmap in bytes.

Remove this erroneous 'bmap_size' and use 'rcfw->cmdq_depth' directly in
'bnxt_qplib_disable_rcfw_channel()'. Otherwise some error messages may
be missing.

Other uses of 'cmdq_bitmap' already take into account 'rcfw->cmdq_depth'
directly.

Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 ++----
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
 2 files changed, 2 insertions(+), 5 deletions(-)

Comments

Selvin Xavier Nov. 15, 2021, 9:41 a.m. UTC | #1
On Fri, Nov 12, 2021 at 2:36 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> The 'cmdq->cmdq_bitmap' bitmap is 'rcfw->cmdq_depth' bits long.
> The size stored in 'cmdq->bmap_size' is the size of the bitmap in bytes.
>
> Remove this erroneous 'bmap_size' and use 'rcfw->cmdq_depth' directly in
> 'bnxt_qplib_disable_rcfw_channel()'. Otherwise some error messages may
> be missing.
>
> Other uses of 'cmdq_bitmap' already take into account 'rcfw->cmdq_depth'
> directly.
>
> Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
Jason Gunthorpe Nov. 16, 2021, 5:57 p.m. UTC | #2
On Fri, Nov 12, 2021 at 09:59:04AM +0100, Christophe JAILLET wrote:
> The 'cmdq->cmdq_bitmap' bitmap is 'rcfw->cmdq_depth' bits long.
> The size stored in 'cmdq->bmap_size' is the size of the bitmap in bytes.
> 
> Remove this erroneous 'bmap_size' and use 'rcfw->cmdq_depth' directly in
> 'bnxt_qplib_disable_rcfw_channel()'. Otherwise some error messages may
> be missing.
> 
> Other uses of 'cmdq_bitmap' already take into account 'rcfw->cmdq_depth'
> directly.
> 
> Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
> ---
>  drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 ++----
>  drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
>  2 files changed, 2 insertions(+), 5 deletions(-)

Applied to for-next, thanks

Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
index 3de854727460..19a0778d38a2 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -618,8 +618,6 @@  int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res,
 	if (!cmdq->cmdq_bitmap)
 		goto fail;
 
-	cmdq->bmap_size = bmap_size;
-
 	/* Allocate one extra to hold the QP1 entries */
 	rcfw->qp_tbl_size = qp_tbl_sz + 1;
 	rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node),
@@ -667,8 +665,8 @@  void bnxt_qplib_disable_rcfw_channel(struct bnxt_qplib_rcfw *rcfw)
 	iounmap(cmdq->cmdq_mbox.reg.bar_reg);
 	iounmap(creq->creq_db.reg.bar_reg);
 
-	indx = find_first_bit(cmdq->cmdq_bitmap, cmdq->bmap_size);
-	if (indx != cmdq->bmap_size)
+	indx = find_first_bit(cmdq->cmdq_bitmap, rcfw->cmdq_depth);
+	if (indx != rcfw->cmdq_depth)
 		dev_err(&rcfw->pdev->dev,
 			"disabling RCFW with pending cmd-bit %lx\n", indx);
 
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
index 82faa4e4cda8..0a3d8e7da3d4 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
@@ -152,7 +152,6 @@  struct bnxt_qplib_cmdq_ctx {
 	wait_queue_head_t		waitq;
 	unsigned long			flags;
 	unsigned long			*cmdq_bitmap;
-	u32				bmap_size;
 	u32				seq_num;
 };