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

Commit 7167cf0e authored by Ricardo Ribalda Delgado's avatar Ricardo Ribalda Delgado Committed by David S. Miller
Browse files

ll_temac: Reset dma descriptors indexes on ndo_open



The dma descriptors indexes are only initialized on the probe function.

If a packet is on the buffer when temac_stop is called, the dma
descriptors indexes can be left on a incorrect state where no other
package can be sent.

So an interface could be left in an usable state after ifdow/ifup.

This patch makes sure that the descriptors indexes are in a proper
status when the device is open.

Signed-off-by: default avatarRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 45906723
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -297,6 +297,12 @@ static int temac_dma_bd_init(struct net_device *ndev)
		       lp->rx_bd_p + (sizeof(*lp->rx_bd_v) * (RX_BD_NUM - 1)));
	lp->dma_out(lp, TX_CURDESC_PTR, lp->tx_bd_p);

	/* Init descriptor indexes */
	lp->tx_bd_ci = 0;
	lp->tx_bd_next = 0;
	lp->tx_bd_tail = 0;
	lp->rx_bd_ci = 0;

	return 0;

out: