mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-10-26 10:57:38 +08:00
octeontx2-af: Fix CQ enable state tracking after AQ writes
Use the CQ context's ena field when updating the CQ enable bitmap.
The current code reads rq.ena, which overlaps bit 0 of the CQ base address
and can leave the bitmap out of sync with the hardware context. This can
cause enabled CQs to be skipped during teardown.
Use sq.ena for the SQ bitmap update as well, so each queue type reads
its own context.
Fixes: 557dd485ea ("octeontx2-af: Support for disabling NIX RQ/SQ/CQ contexts")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Ratheesh Kannoth <rkannoth@marvell.com>
Reviewed-by: Sunil Goutham <sgoutham@marvell.com>
Link: https://patch.msgid.link/20261011125508.534618-1-alok.a.tiwari@oracle.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
1 parent
7ec48f396a
commit
07bd391eb9
1 file changed
+2
-2
@@ -1239,7 +1239,7 @@ static int rvu_nix_blk_aq_enq_inst(struct rvu *rvu, struct nix_hw *nix_hw,
|
||||
__clear_bit(req->qidx, pfvf->rq_bmap);
|
||||
}
|
||||
if (req->ctype == NIX_AQ_CTYPE_SQ) {
|
||||
ena = (req->rq.ena & req->sq_mask.ena) |
|
||||
ena = (req->sq.ena & req->sq_mask.ena) |
|
||||
(test_bit(req->qidx, pfvf->sq_bmap) &
|
||||
~req->sq_mask.ena);
|
||||
if (ena)
|
||||
@@ -1248,7 +1248,7 @@ static int rvu_nix_blk_aq_enq_inst(struct rvu *rvu, struct nix_hw *nix_hw,
|
||||
__clear_bit(req->qidx, pfvf->sq_bmap);
|
||||
}
|
||||
if (req->ctype == NIX_AQ_CTYPE_CQ) {
|
||||
ena = (req->rq.ena & req->cq_mask.ena) |
|
||||
ena = (req->cq.ena & req->cq_mask.ena) |
|
||||
(test_bit(req->qidx, pfvf->cq_bmap) &
|
||||
~req->cq_mask.ena);
|
||||
if (ena)
|
||||
|
||||
Reference in new issue
Block a user