bnxt_en: cleanup DIM work on device shutdown
authorAndy Gospodarek <gospo@broadcom.com>
Fri, 26 Jan 2018 15:27:47 +0000 (10:27 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Jan 2018 19:19:23 +0000 (14:19 -0500)
Make sure to cancel any pending work that might update driver coalesce
settings when taking down an interface.

Fixes: 6a8788f25625 ("bnxt_en: add support for software dynamic interrupt moderation")
Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Cc: Michael Chan <michael.chan@broadcom.com>
Acked-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 4b001d2050c2d4a056ae0a7247be81c3176797aa..1500243b988650625c5deeaf5ac9759e2670b514 100644 (file)
@@ -6082,8 +6082,14 @@ static void bnxt_disable_napi(struct bnxt *bp)
        if (!bp->bnapi)
                return;
 
-       for (i = 0; i < bp->cp_nr_rings; i++)
+       for (i = 0; i < bp->cp_nr_rings; i++) {
+               struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring;
+
+               if (bp->bnapi[i]->rx_ring)
+                       cancel_work_sync(&cpr->dim.work);
+
                napi_disable(&bp->bnapi[i]->napi);
+       }
 }
 
 static void bnxt_enable_napi(struct bnxt *bp)