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

Commit 45cdf9f3 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'cpsw'



Mugunthan V N says:

====================
This patch series fixes the cpsw issue with interface up/dpwn with high
ethernet traffic.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 676d2369 f63a975e
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -687,7 +687,7 @@ static void cpsw_rx_handler(void *token, int len, int status)

	cpsw_dual_emac_src_port_detect(status, priv, ndev, skb);

	if (unlikely(status < 0)) {
	if (unlikely(status < 0) || unlikely(!netif_running(ndev))) {
		/* the interface is going down, skbs are purged */
		dev_kfree_skb_any(skb);
		return;
@@ -1252,6 +1252,12 @@ static int cpsw_ndo_open(struct net_device *ndev)
		cpsw_set_coalesce(ndev, &coal);
	}

	napi_enable(&priv->napi);
	cpdma_ctlr_start(priv->dma);
	cpsw_intr_enable(priv);
	cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_RX);
	cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_TX);

	prim_cpsw = cpsw_get_slave_priv(priv, 0);
	if (prim_cpsw->irq_enabled == false) {
		if ((priv == prim_cpsw) || !netif_running(prim_cpsw->ndev)) {
@@ -1260,12 +1266,6 @@ static int cpsw_ndo_open(struct net_device *ndev)
		}
	}

	napi_enable(&priv->napi);
	cpdma_ctlr_start(priv->dma);
	cpsw_intr_enable(priv);
	cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_RX);
	cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_TX);

	if (priv->data.dual_emac)
		priv->slaves[priv->emac_port].open_stat = true;
	return 0;