diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-11-26 00:12:32 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2009-11-26 00:12:32 +0000 |
commit | 76fd7ffdc11cba1cb8d764a1ce63ab2eceba8abd (patch) | |
tree | fdc75888cc45217644a2f5a667eb16fff2b30cff /sys | |
parent | a52fd6eebd2b388f9a82495a72a44e75eef968dd (diff) |
Only re-initialise interfaces on suspend if they were IFF_RUNNING.
ok deraadt@, claudio@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/if_msk.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/if_re_pci.c | 5 |
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; } |