Module Name:    src
Committed By:   dyoung
Date:           Fri Mar 27 16:45:53 UTC 2009

Modified Files:
        src/sys/dev/pci: if_sip.c

Log Message:
If a sip(4) is powered down, then neither is its PHY, so don't try to
read media status from the PHY.


To generate a diff of this commit:
cvs rdiff -u -r1.136 -r1.137 src/sys/dev/pci/if_sip.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/if_sip.c
diff -u src/sys/dev/pci/if_sip.c:1.136 src/sys/dev/pci/if_sip.c:1.137
--- src/sys/dev/pci/if_sip.c:1.136	Sat Mar  7 00:56:04 2009
+++ src/sys/dev/pci/if_sip.c	Fri Mar 27 16:45:53 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_sip.c,v 1.136 2009/03/07 00:56:04 dyoung Exp $	*/
+/*	$NetBSD: if_sip.c,v 1.137 2009/03/27 16:45:53 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.136 2009/03/07 00:56:04 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.137 2009/03/27 16:45:53 dyoung Exp $");
 
 #include "bpfilter.h"
 #include "rnd.h"
@@ -3937,6 +3937,11 @@
 {
 	struct sip_softc *sc = ifp->if_softc;
 
+	if (!device_is_active(&sc->sc_dev)) {
+		ifmr->ifm_active = IFM_ETHER | IFM_NONE;
+		ifmr->ifm_status = 0;
+		return;
+	}
 	ether_mediastatus(ifp, ifmr);
 	ifmr->ifm_active = (ifmr->ifm_active & ~IFM_ETH_FMASK) |
 			   sc->sc_flowflags;

Reply via email to