summaryrefslogtreecommitdiffstats
path: root/sys/dev/re/if_re.c
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2003-09-11 07:54:16 +0000
committerwpaul <wpaul@FreeBSD.org>2003-09-11 07:54:16 +0000
commit3c39a93877021717f3f9f13a25b0fbff7db25222 (patch)
treeaabb3eb1a67caa24dfea7b376d45c65f9cb9ae39 /sys/dev/re/if_re.c
parentd4a3ccea7c9aa74a42d1df6d9a635c2b8054eaf5 (diff)
downloadFreeBSD-src-3c39a93877021717f3f9f13a25b0fbff7db25222.zip
FreeBSD-src-3c39a93877021717f3f9f13a25b0fbff7db25222.tar.gz
Toggle the interface on and off before starting the diag test. This
seems to be necessary for the 8139C+ under certain circumstances, and doesn't appear to hurt the other chips. (In the failure case, the packet would be sent through the TX DMA ring but not get echoed back. I suspect this has something to do with the link state changing unexpectedly.)
Diffstat (limited to 'sys/dev/re/if_re.c')
-rw-r--r--sys/dev/re/if_re.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 6e21d67..e439d3f 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -728,6 +728,9 @@ re_diag(sc)
ifp->if_flags |= IFF_PROMISC;
sc->rl_testmode = 1;
re_init(sc);
+ re_stop(sc);
+ DELAY(100000);
+ re_init(sc);
/* Put some data in the mbuf */
OpenPOWER on IntegriCloud