svn commit: r251481 - head/sys/dev/bge

Pyun YongHyeon yongari at FreeBSD.org
Fri Jun 7 01:01:40 UTC 2013


Author: yongari
Date: Fri Jun  7 01:01:39 2013
New Revision: 251481
URL: http://svnweb.freebsd.org/changeset/base/251481

Log:
  Do not report current link status if driver is not running.
  Reporting link status in driver has a side-effect that makes mii(4)
  check current link status.  mii(4) will call link status change
  callback when it sees link state change.  Normally this wouldn't
  have problems. However, ASF/IPMI firmware can actively access PHY
  regardless of driver's running state such that reporting link
  status for not-running interface can generate meaningless link
  UP/DOWN messages.
  
  This change also makes dhclient think driver got a valid link
  regardless of link establishment so it will bypass dhclient's
  initial link status check. I think that wouldn't be issue
  though.
  
  Tested by:	Daniel Braniss <danny at cs.huji.ac.il>

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Fri Jun  7 00:48:01 2013	(r251480)
+++ head/sys/dev/bge/if_bge.c	Fri Jun  7 01:01:39 2013	(r251481)
@@ -5583,6 +5583,10 @@ bge_ifmedia_sts(struct ifnet *ifp, struc
 
 	BGE_LOCK(sc);
 
+	if ((ifp->if_flags & IFF_UP) == 0) {
+		BGE_UNLOCK(sc);
+		return;
+	}
 	if (sc->bge_flags & BGE_FLAG_TBI) {
 		ifmr->ifm_status = IFM_AVALID;
 		ifmr->ifm_active = IFM_ETHER;


More information about the svn-src-head mailing list