summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/if_url.c
diff options
context:
space:
mode:
authorbrad <brad@openbsd.org>2005-01-03 22:45:52 +0000
committerbrad <brad@openbsd.org>2005-01-03 22:45:52 +0000
commit2211234856e751e25bddaf199350f990d153c54b (patch)
tree8f678e00acaadef138217ad5f0e8202e141dbb08 /sys/dev/usb/if_url.c
parenttoo much Xo/Xc in this file; (diff)
downloadwireguard-openbsd-2211234856e751e25bddaf199350f990d153c54b.tar.xz
wireguard-openbsd-2211234856e751e25bddaf199350f990d153c54b.zip
- make sure int is in running state before touching the multicast filters
- call foo_setmulti only instead of init'ing the chip - don't overwrite potential error return with success when calling ether_addmulti/ether_delmulti ok dlg@
Diffstat (limited to 'sys/dev/usb/if_url.c')
-rw-r--r--sys/dev/usb/if_url.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/usb/if_url.c b/sys/dev/usb/if_url.c
index 7dc72032df5..c5305137e74 100644
--- a/sys/dev/usb/if_url.c
+++ b/sys/dev/usb/if_url.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_url.c,v 1.19 2004/11/17 05:00:28 deraadt Exp $ */
+/* $OpenBSD: if_url.c,v 1.20 2005/01/03 22:45:52 brad Exp $ */
/* $NetBSD: if_url.c,v 1.6 2002/09/29 10:19:21 martin Exp $ */
/*
* Copyright (c) 2001, 2002
@@ -1196,11 +1196,12 @@ url_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
error = (cmd == SIOCADDMULTI) ?
ether_addmulti(ifr, &sc->sc_ac) :
ether_delmulti(ifr, &sc->sc_ac);
+
if (error == ENETRESET) {
- url_init(ifp);
+ if (ifp->if_flags & IFF_RUNNING)
+ url_setmulti(sc);
+ error = 0;
}
- url_setmulti(sc);
- error = 0;
break;
case SIOCGIFMEDIA:
case SIOCSIFMEDIA: