Page MenuHomeFreeBSD

D44484.diff
No OneTemporary

D44484.diff

diff --git a/sys/dev/eqos/if_eqos.c b/sys/dev/eqos/if_eqos.c
--- a/sys/dev/eqos/if_eqos.c
+++ b/sys/dev/eqos/if_eqos.c
@@ -627,7 +627,7 @@
{
if_t ifp = sc->ifp;
uint32_t val;
- int retry;
+ int retry, i;
EQOS_LOCK(sc);
@@ -668,6 +668,16 @@
val &= ~GMAC_MAC_CONFIGURATION_TE;
WR4(sc, GMAC_MAC_CONFIGURATION, val);
+ /* Renitialize TX ring descriptors */
+ sc->tx.head = sc->tx.tail = 0;
+
+ /* Reclaim TX descriptors */
+ for (i = 0; i < TX_DESC_COUNT; i++)
+ eqos_setup_txdesc(sc, i, EQOS_TDES3_OWN, 0, 0, 0);
+
+ /* Reinitialize RX ring descriptors */
+ sc->rx.head = sc->rx.tail = 0;
+
eqos_disable_intr(sc);
EQOS_UNLOCK(sc);

File Metadata

Mime Type
text/plain
Expires
Wed, Feb 25, 1:17 PM (8 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28988640
Default Alt Text
D44484.diff (752 B)

Event Timeline