Merge branch 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / drivers / net / ethernet / mellanox / mlx4 / en_cq.c
index 3a098cc..70e9532 100644 (file)
@@ -161,12 +161,16 @@ int mlx4_en_activate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq,
        cq->mcq.comp  = cq->is_tx ? mlx4_en_tx_irq : mlx4_en_rx_irq;
        cq->mcq.event = mlx4_en_cq_event;
 
-       if (!cq->is_tx) {
+       if (cq->is_tx) {
+               netif_napi_add(cq->dev, &cq->napi, mlx4_en_poll_tx_cq,
+                              NAPI_POLL_WEIGHT);
+       } else {
                netif_napi_add(cq->dev, &cq->napi, mlx4_en_poll_rx_cq, 64);
                napi_hash_add(&cq->napi);
-               napi_enable(&cq->napi);
        }
 
+       napi_enable(&cq->napi);
+
        return 0;
 }
 
@@ -188,12 +192,12 @@ void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq **pcq)
 
 void mlx4_en_deactivate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
 {
+       napi_disable(&cq->napi);
        if (!cq->is_tx) {
-               napi_disable(&cq->napi);
                napi_hash_del(&cq->napi);
                synchronize_rcu();
-               netif_napi_del(&cq->napi);
        }
+       netif_napi_del(&cq->napi);
 
        mlx4_cq_free(priv->mdev->dev, &cq->mcq);
 }