From 57c81d92aecb49b57e84691af0306d24ded3754a Mon Sep 17 00:00:00 2001 From: Pyun YongHyeon Date: Mon, 17 Oct 2011 19:49:00 +0000 Subject: Close a race where SIOCGIFMEDIA ioctl get inconsistent link status. Because driver is accessing a common MII structure in mii_pollstat(), updating user supplied structure should be done before dropping a driver lock. Reported by: Karim (fodillemlinkarimi <> gmail dot com) --- sys/dev/re/if_re.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sys/dev/re') diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index 3c45cc97d9c6e..704276efd08e1 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -3214,9 +3214,9 @@ re_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) RL_LOCK(sc); mii_pollstat(mii); - RL_UNLOCK(sc); ifmr->ifm_active = mii->mii_media_active; ifmr->ifm_status = mii->mii_media_status; + RL_UNLOCK(sc); } static int -- cgit v1.3