summaryrefslogtreecommitdiffstats
path: root/sys/dev/awi
diff options
context:
space:
mode:
authoronoe <onoe@FreeBSD.org>2004-04-18 01:05:02 +0000
committeronoe <onoe@FreeBSD.org>2004-04-18 01:05:02 +0000
commit9ce8f42312f1416345b36e1c4d8464c2c8da5e50 (patch)
treec946c8369276dc2b6e2ac0078da2468499161c94 /sys/dev/awi
parent04f5fa02169597aeead7667889dcbbe3d90c0d5b (diff)
downloadFreeBSD-src-9ce8f42312f1416345b36e1c4d8464c2c8da5e50.zip
FreeBSD-src-9ce8f42312f1416345b36e1c4d8464c2c8da5e50.tar.gz
Use IFF_ALLMULTI instead of if_amcount to decide if all multicast should
be received. Pointed out by Luigi Rizzo.
Diffstat (limited to 'sys/dev/awi')
-rw-r--r--sys/dev/awi/awi.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/dev/awi/awi.c b/sys/dev/awi/awi.c
index eec1d30..db72716 100644
--- a/sys/dev/awi/awi.c
+++ b/sys/dev/awi/awi.c
@@ -1,4 +1,4 @@
-/* $NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $ */
+/* $NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $ */
/*-
* Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc.
@@ -86,7 +86,7 @@
#include <sys/cdefs.h>
#ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $");
#endif
#ifdef __FreeBSD__
__FBSDID("$FreeBSD$");
@@ -1112,7 +1112,7 @@ awi_mode_init(struct awi_softc *sc)
}
sc->sc_mib_mac.aPromiscuous_Enable = 0;
#ifdef __FreeBSD__
- if (ifp->if_amcount != 0)
+ if (ifp->if_flags & IFF_ALLMULTI)
goto set_mib;
TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
@@ -1141,10 +1141,12 @@ awi_mode_init(struct awi_softc *sc)
sc->sc_mib_local.Accept_All_Multicast_Dis = 1;
set_mib:
+#ifndef __FreeBSD__
if (sc->sc_mib_local.Accept_All_Multicast_Dis)
ifp->if_flags &= ~IFF_ALLMULTI;
else
ifp->if_flags |= IFF_ALLMULTI;
+#endif
sc->sc_mib_mgt.Wep_Required =
(sc->sc_ic.ic_flags & IEEE80211_F_WEPON) ? AWI_WEP_ON : AWI_WEP_OFF;
@@ -1926,7 +1928,7 @@ awi_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
case IEEE80211_S_ASSOC:
case IEEE80211_S_INIT:
ieee80211_begin_scan(ifp);
- /* FALLTHRU */
+ break;
case IEEE80211_S_SCAN:
/* scan next */
break;
@@ -2084,8 +2086,11 @@ awi_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
return (*sc->sc_newstate)(ic, nstate, arg);
out:
- if (error != 0)
+ if (error != 0) {
+ if (error == EINPROGRESS)
+ error = 0;
return error;
+ }
return (*sc->sc_newstate)(ic, nstate, arg);
}
OpenPOWER on IntegriCloud