]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 11 Jan 2021 09:26:39 +0000 (04:26 -0500)
committerJakub Kicinski <kuba@kernel.org>
Wed, 13 Jan 2021 04:05:35 +0000 (20:05 -0800)
commit0a04abb859990b7fd1efe505c784b853511a6f44
tree035fddb90ce5a790db9994a3c2c2ac5f02106843
parentc3e3d96b9c9e9faf85a682d2faf98484660079c8
bnxt_en: Improve stats context resource accounting with RDMA driver loaded.

The function bnxt_get_ulp_stat_ctxs() does not count the stats contexts
used by the RDMA driver correctly when the RDMA driver is freeing the
MSIX vectors.  It assumes that if the RDMA driver is registered, the
additional stats contexts will be needed.  This is not true when the
RDMA driver is about to unregister and frees the MSIX vectors.

This slight error leads to over accouting of the stats contexts needed
after the RDMA driver has unloaded.  This will cause some firmware
warning and error messages in dmesg during subsequent config. changes
or ifdown/ifup.

Fix it by properly accouting for extra stats contexts only if the
RDMA driver is registered and MSIX vectors have been successfully
requested.

Fixes: c786920deee3 ("bnxt_en: get rid of num_stat_ctxs variable")
Reviewed-by: Yongping Zhang <yongping.zhang@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c