clear flags always
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9331 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
7223e2e5a9
commit
3d48c050f4
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue