summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2009-11-26 00:12:32 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2009-11-26 00:12:32 +0000
commit76fd7ffdc11cba1cb8d764a1ce63ab2eceba8abd (patch)
treefdc75888cc45217644a2f5a667eb16fff2b30cff
parenta52fd6eebd2b388f9a82495a72a44e75eef968dd (diff)
Only re-initialise interfaces on suspend if they were IFF_RUNNING.
ok deraadt@, claudio@
-rw-r--r--sys/dev/pci/if_msk.c6
-rw-r--r--sys/dev/pci/if_re_pci.c5
2 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/pci/if_msk.c b/sys/dev/pci/if_msk.c
index 551f786f1ed..385ee666a39 100644
--- a/sys/dev/pci/if_msk.c
+++ b/sys/dev/pci/if_msk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_msk.c,v 1.82 2009/11/24 15:56:03 kettenis Exp $ */
+/* $OpenBSD: if_msk.c,v 1.83 2009/11/26 00:12:31 kettenis Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -1047,6 +1047,7 @@ int
msk_activate(struct device *self, int act)
{
struct sk_if_softc *sc_if = (void *)self;
+ struct ifnet *ifp = &sc_if->arpcom.ac_if;
int rv = 0;
switch (act) {
@@ -1056,7 +1057,8 @@ msk_activate(struct device *self, int act)
case DVACT_RESUME:
msk_reset(sc_if);
rv = config_activate_children(self, act);
- msk_init(sc_if);
+ if (ifp->if_flags & IFF_RUNNING)
+ msk_init(sc_if);
break;
}
diff --git a/sys/dev/pci/if_re_pci.c b/sys/dev/pci/if_re_pci.c
index 89f7a2d9c1c..34011c517b4 100644
--- a/sys/dev/pci/if_re_pci.c
+++ b/sys/dev/pci/if_re_pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_re_pci.c,v 1.26 2009/11/24 17:40:43 kettenis Exp $ */
+/* $OpenBSD: if_re_pci.c,v 1.27 2009/11/26 00:12:31 kettenis Exp $ */
/*
* Copyright (c) 2005 Peter Valchev <pvalchev@openbsd.org>
@@ -252,7 +252,8 @@ re_pci_activate(struct device *self, int act)
break;
case DVACT_RESUME:
re_reset(sc);
- re_init(ifp);
+ if (ifp->if_flags & IFF_RUNNING)
+ re_init(ifp);
break;
}