Module Name: src Committed By: christos Date: Wed Dec 10 00:15:26 UTC 2014
Modified Files: src/sys/dev/pci: if_sk.c Log Message: don't give up on mii tick before the interface is marked up. To generate a diff of this commit: cvs rdiff -u -r1.78 -r1.79 src/sys/dev/pci/if_sk.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_sk.c diff -u src/sys/dev/pci/if_sk.c:1.78 src/sys/dev/pci/if_sk.c:1.79 --- src/sys/dev/pci/if_sk.c:1.78 Sun Aug 10 12:44:36 2014 +++ src/sys/dev/pci/if_sk.c Tue Dec 9 19:15:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_sk.c,v 1.78 2014/08/10 16:44:36 tls Exp $ */ +/* $NetBSD: if_sk.c,v 1.79 2014/12/10 00:15:26 christos Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -115,7 +115,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_sk.c,v 1.78 2014/08/10 16:44:36 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_sk.c,v 1.79 2014/12/10 00:15:26 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -2220,7 +2220,10 @@ sk_tick(void *xsc_if) SK_XM_CLRBIT_2(sc_if, XM_IMR, XM_IMR_GP0_SET); SK_XM_READ_2(sc_if, XM_ISR); mii_tick(mii); - callout_stop(&sc_if->sk_tick_ch); + if (ifp->if_link_state != LINK_STATE_UP) + callout_reset(&sc_if->sk_tick_ch, hz, sk_tick, sc_if); + else + callout_stop(&sc_if->sk_tick_ch); } void @@ -2872,6 +2875,7 @@ sk_init(struct ifnet *ifp) ifp->if_flags |= IFF_RUNNING; ifp->if_flags &= ~IFF_OACTIVE; + callout_reset(&sc_if->sk_tick_ch, hz, sk_tick, sc_if); out: splx(s);