mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
bnxt_en: Fix stats context reservation logic
The HW resource reservation logic allows the L2 driver to use the
RoCE resources if the RoCE driver is not registered. When calculating
the stats contexts available for L2, we should not blindly subtract
the stats contexts reserved for RoCE unless the RoCE driver is
registered. This bug may cause the L2 rings to be less than the
number requested when we are close to running out of stats contexts.
Fixes: 2e4592dc9b
("bnxt_en: Change MSIX/NQs allocation policy")
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250825175927.459987-4-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
1ee581c24d
commit
b4fc8faacf
@ -8016,7 +8016,8 @@ static int __bnxt_reserve_rings(struct bnxt *bp)
|
|||||||
}
|
}
|
||||||
rx_rings = min_t(int, rx_rings, hwr.grp);
|
rx_rings = min_t(int, rx_rings, hwr.grp);
|
||||||
hwr.cp = min_t(int, hwr.cp, bp->cp_nr_rings);
|
hwr.cp = min_t(int, hwr.cp, bp->cp_nr_rings);
|
||||||
if (hwr.stat > bnxt_get_ulp_stat_ctxs(bp))
|
if (bnxt_ulp_registered(bp->edev) &&
|
||||||
|
hwr.stat > bnxt_get_ulp_stat_ctxs(bp))
|
||||||
hwr.stat -= bnxt_get_ulp_stat_ctxs(bp);
|
hwr.stat -= bnxt_get_ulp_stat_ctxs(bp);
|
||||||
hwr.cp = min_t(int, hwr.cp, hwr.stat);
|
hwr.cp = min_t(int, hwr.cp, hwr.stat);
|
||||||
rc = bnxt_trim_rings(bp, &rx_rings, &hwr.tx, hwr.cp, sh);
|
rc = bnxt_trim_rings(bp, &rx_rings, &hwr.tx, hwr.cp, sh);
|
||||||
|
Loading…
Reference in New Issue
Block a user