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 <da...@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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to