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;