summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMarcus Glocker <mglocker@cvs.openbsd.org>2007-02-14 20:52:27 +0000
committerMarcus Glocker <mglocker@cvs.openbsd.org>2007-02-14 20:52:27 +0000
commitbca53af6b10e20b655dde4fa4efa52557991998e (patch)
tree1bcde4e6f9bd32f37a923ace52e4871ee58d7f7d /sys/dev
parent94bb45c203b00214d83cea8295a7209ede790f30 (diff)
Sync with pgt(4) multicast fix.
OK claudio@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ic/malo.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/ic/malo.c b/sys/dev/ic/malo.c
index ef65c176e1d..8e92ead659f 100644
--- a/sys/dev/ic/malo.c
+++ b/sys/dev/ic/malo.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: malo.c,v 1.62 2007/02/09 10:35:43 claudio Exp $ */
+/* $OpenBSD: malo.c,v 1.63 2007/02/14 20:52:26 mglocker Exp $ */
/*
* Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org>
@@ -972,6 +972,7 @@ malo_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
struct malo_softc *sc = ifp->if_softc;
struct ieee80211com *ic = &sc->sc_ic;
struct ifaddr *ifa;
+ struct ifreq *ifr;
int s, error = 0;
s = splnet();
@@ -994,6 +995,16 @@ malo_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
malo_stop(sc);
}
break;
+ case SIOCADDMULTI:
+ case SIOCDELMULTI:
+ ifr = (struct ifreq *)data;
+ error = (cmd == SIOCADDMULTI) ?
+ ether_addmulti(ifr, &ic->ic_ac) :
+ ether_delmulti(ifr, &ic->ic_ac);
+
+ if (error == ENETRESET)
+ error = 0;
+ break;
default:
error = ieee80211_ioctl(ifp, cmd, data);
break;