summaryrefslogtreecommitdiffstats
path: root/sys/dev/isa/if_ex.c
diff options
context:
space:
mode:
authorbrad <brad@openbsd.org>2007-10-18 04:52:37 +0000
committerbrad <brad@openbsd.org>2007-10-18 04:52:37 +0000
commit0a97942d1911946ed585e37d66eeb755bfefb78a (patch)
treedb86d7ed3be53a10d179adf48ec3ccf475c2cb2a /sys/dev/isa/if_ex.c
parentNo need to include <machine/pte.h> here. (diff)
downloadwireguard-openbsd-0a97942d1911946ed585e37d66eeb755bfefb78a.tar.xz
wireguard-openbsd-0a97942d1911946ed585e37d66eeb755bfefb78a.zip
Eliminate unnecessary resets when calling the SIOCSIFADDR ioctl.
Tested by todd@ ok dlg@
Diffstat (limited to 'sys/dev/isa/if_ex.c')
-rw-r--r--sys/dev/isa/if_ex.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/sys/dev/isa/if_ex.c b/sys/dev/isa/if_ex.c
index 3b91b23fc5c..7e27552cccf 100644
--- a/sys/dev/isa/if_ex.c
+++ b/sys/dev/isa/if_ex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ex.c,v 1.28 2007/10/06 06:35:57 brad Exp $ */
+/* $OpenBSD: if_ex.c,v 1.29 2007/10/18 04:52:37 brad Exp $ */
/*
* Copyright (c) 1997, Donald A. Schmidt
* Copyright (c) 1996, Javier Martín Rueda (jmrueda@diatel.upm.es)
@@ -748,18 +748,12 @@ ex_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
case SIOCSIFADDR:
DODEBUG(Start_End, printf("SIOCSIFADDR"););
ifp->if_flags |= IFF_UP;
-
- switch(ifa->ifa_addr->sa_family) {
+ if (!(ifp->if_flags & IFF_RUNNING))
+ ex_init(sc);
#ifdef INET
- case AF_INET:
- ex_init(sc);
- arp_ifinit((struct arpcom *) ifp, ifa);
- break;
+ if (ifa->ifa_addr->sa_family == AF_INET)
+ arp_ifinit(&sc->arpcom, ifa);
#endif
- default:
- ex_init(sc);
- break;
- }
break;
case SIOCSIFFLAGS:
DODEBUG(Start_End, printf("SIOCSIFFLAGS"););