summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
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 /sys/dev/re
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.
Diffstat (limited to 'sys/dev/re')
-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