clear flags always

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9331 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Eugene Konev 2007-10-16 09:26:58 +00:00
parent 7223e2e5a9
commit 3d48c050f4
1 changed files with 2 additions and 2 deletions

View File

@ -1,7 +1,7 @@
Index: acx-mac80211-20071003/common.c Index: acx-mac80211-20071003/common.c
=================================================================== ===================================================================
--- acx-mac80211-20071003.orig/common.c 2007-10-15 21:33:40.000000000 +0800 --- acx-mac80211-20071003.orig/common.c 2007-10-15 21:33:40.000000000 +0800
+++ acx-mac80211-20071003/common.c 2007-10-15 21:39:55.000000000 +0800 +++ acx-mac80211-20071003/common.c 2007-10-16 10:01:58.000000000 +0800
@@ -1683,7 +1683,9 @@ @@ -1683,7 +1683,9 @@
*/ */
void void
@ -17,12 +17,12 @@ Index: acx-mac80211-20071003/common.c
acx_lock(adev, flags); acx_lock(adev, flags);
+ *total_flags &= (FIF_PROMISC_IN_BSS | FIF_ALLMULTI);
+ if ((changed_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) == 0) + if ((changed_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) == 0)
+ return; + return;
/* firmwares don't have allmulti capability, /* firmwares don't have allmulti capability,
* so just use promiscuous mode instead in this case. */ * so just use promiscuous mode instead in this case. */
- if (netflags & (IFF_PROMISC | IFF_ALLMULTI)) { - if (netflags & (IFF_PROMISC | IFF_ALLMULTI)) {
+ *total_flags &= (FIF_PROMISC_IN_BSS | FIF_ALLMULTI);
+ if (*total_flags) { + if (*total_flags) {
SET_BIT(adev->rx_config_1, RX_CFG1_RCV_PROMISCUOUS); SET_BIT(adev->rx_config_1, RX_CFG1_RCV_PROMISCUOUS);
CLEAR_BIT(adev->rx_config_1, RX_CFG1_FILTER_ALL_MULTI); CLEAR_BIT(adev->rx_config_1, RX_CFG1_FILTER_ALL_MULTI);