]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
bnxt: disable napi before canceling DIM
authorJakub Kicinski <kuba@kernel.org>
Thu, 12 Aug 2021 21:42:40 +0000 (14:42 -0700)
committerSasha Levin <sashal@kernel.org>
Thu, 26 Aug 2021 12:36:46 +0000 (08:36 -0400)
[ Upstream commit 01cca6b9330ac7460de44eeeb3a0607f8aae69ff ]

napi schedules DIM, napi has to be disabled first,
then DIM canceled.

Noticed while reading the code.

Fixes: 0bc0b97fca73 ("bnxt_en: cleanup DIM work on device shutdown")
Fixes: 6a8788f25625 ("bnxt_en: add support for software dynamic interrupt moderation")
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index c4ddd8f71b93368bb1bed5d7c75ecf849ead075d..55827ac65a154a2e0f9f360d192db20c2be5a41b 100644 (file)
@@ -6269,10 +6269,9 @@ static void bnxt_disable_napi(struct bnxt *bp)
        for (i = 0; i < bp->cp_nr_rings; i++) {
                struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring;
 
+               napi_disable(&bp->bnapi[i]->napi);
                if (bp->bnapi[i]->rx_ring)
                        cancel_work_sync(&cpr->dim.work);
-
-               napi_disable(&bp->bnapi[i]->napi);
        }
 }