mlx4_en: Fix not deleted napi structures
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>
Mon, 18 May 2009 03:48:59 +0000 (20:48 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 May 2009 03:48:59 +0000 (20:48 -0700)
Napi structures are being created each time we open a port, but when
the port is closed the napi structure is only disabled but not removed.
This bug caused hang while removing the driver.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mlx4/en_cq.c

index 91f50de..a276125 100644 (file)
@@ -125,8 +125,10 @@ void mlx4_en_deactivate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
 
        if (cq->is_tx)
                del_timer(&cq->timer);
-       else
+       else {
                napi_disable(&cq->napi);
+               netif_napi_del(&cq->napi);
+       }
 
        mlx4_cq_free(mdev->dev, &cq->mcq);
 }