summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2011-01-10 23:47:11 +0000
committeryongari <yongari@FreeBSD.org>2011-01-10 23:47:11 +0000
commit1d1ef54a742aacb2b7a401e82aea2afbe218db8a (patch)
treed35ec53e18d63904254c99582623a2b75997060c
parenteddf4ff0094898fc3322a2f40652ad8d20d8b85b (diff)
downloadFreeBSD-src-1d1ef54a742aacb2b7a401e82aea2afbe218db8a.zip
FreeBSD-src-1d1ef54a742aacb2b7a401e82aea2afbe218db8a.tar.gz
When driver is not running, do not send DUMP command to controller
and just show old (cached) values. Controller will not respond to the command unless MAC is enabled so DUMP request for down interface caused request timeout.
-rw-r--r--sys/dev/re/if_re.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index e1cf2b0..13e3514 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -3278,6 +3278,10 @@ re_sysctl_stats(SYSCTL_HANDLER_ARGS)
if (result == 1) {
sc = (struct rl_softc *)arg1;
RL_LOCK(sc);
+ if ((sc->rl_ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+ RL_UNLOCK(sc);
+ goto done;
+ }
bus_dmamap_sync(sc->rl_ldata.rl_stag,
sc->rl_ldata.rl_smap, BUS_DMASYNC_PREREAD);
CSR_WRITE_4(sc, RL_DUMPSTATS_HI,
@@ -3301,6 +3305,7 @@ re_sysctl_stats(SYSCTL_HANDLER_ARGS)
"DUMP statistics request timedout\n");
return (ETIMEDOUT);
}
+done:
stats = sc->rl_ldata.rl_stats;
printf("%s statistics:\n", device_get_nameunit(sc->rl_dev));
printf("Tx frames : %ju\n",
OpenPOWER on IntegriCloud