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);