diff options
author | 2005-01-03 22:45:52 +0000 | |
---|---|---|
committer | 2005-01-03 22:45:52 +0000 | |
commit | 2211234856e751e25bddaf199350f990d153c54b (patch) | |
tree | 8f678e00acaadef138217ad5f0e8202e141dbb08 /sys/dev/usb/if_url.c | |
parent | too much Xo/Xc in this file; (diff) | |
download | wireguard-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.c | 9 |
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: |