Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c05f5ef authored by Yevgeny Petrilin's avatar Yevgeny Petrilin Committed by David S. Miller
Browse files

mlx4_en: Cancel port_up check in transmit function



When closing the port, we stop all transmit queues under the transmit
lock. It ensures that we will not attempt to transmit new packets after
the physical port was closed.

Signed-off-by: default avatarYevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a11faac7
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -700,14 +700,14 @@ void mlx4_en_stop_port(struct net_device *dev)
		en_dbg(DRV, priv, "stop port called while port already down\n");
		return;
	}
	netif_tx_stop_all_queues(dev);

	/* Synchronize with tx routine */
	netif_tx_lock_bh(dev);
	priv->port_up = false;
	netif_tx_stop_all_queues(dev);
	netif_tx_unlock_bh(dev);

	/* close port*/
	priv->port_up = false;
	mlx4_CLOSE_PORT(mdev->dev, priv->port);

	/* Unregister Mac address for the port */
+0 −7
Original line number Diff line number Diff line
@@ -646,13 +646,6 @@ int mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
		return NETDEV_TX_BUSY;
	}

	/* Now that we know what Tx ring to use */
	if (unlikely(!priv->port_up)) {
		if (netif_msg_tx_err(priv))
			en_warn(priv, "xmit: port down!\n");
		goto tx_drop;
	}

	/* Track current inflight packets for performance analysis */
	AVG_PERF_COUNTER(priv->pstats.inflight_avg,
			 (u32) (ring->prod - ring->cons - 1));