mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 19:31:53 +00:00
iwlwifi: fix multicast
commit 3474ad635d
Author: Johannes Berg <johannes.berg@intel.com>
Date: Thu Apr 29 04:43:05 2010 -0700
iwlwifi: apply filter flags directly
broke multicast. The reason, it turns out, is that
the code previously checked if ALLMULTI _changed_,
which the new code no longer did, and normally it
_never_ changes. Had somebody changed it manually,
the code prior to my patch there would have been
broken already.
The reason is that we always, unconditionally, ask
the device to pass up all multicast frames, but the
new code made it depend on ALLMULTI which broke it
since now we'd pass up multicast frames depending
on the default filter in the device, which isn't
necessarily what we want (since we don't program it
right now).
Fix this by simply not checking allmulti as we have
allmulti behaviour enabled already anyway.
Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
Tested-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
6c3118e230
commit
d1e89f37de
@ -1314,7 +1314,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
|
|||||||
changed_flags, *total_flags);
|
changed_flags, *total_flags);
|
||||||
|
|
||||||
CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK);
|
CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK);
|
||||||
CHK(FIF_ALLMULTI, RXON_FILTER_ACCEPT_GRP_MSK);
|
|
||||||
CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK);
|
CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK);
|
||||||
CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK);
|
CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK);
|
||||||
|
|
||||||
@ -1329,6 +1328,12 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
|
|||||||
|
|
||||||
mutex_unlock(&priv->mutex);
|
mutex_unlock(&priv->mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Receiving all multicast frames is always enabled by the
|
||||||
|
* default flags setup in iwl_connection_init_rx_config()
|
||||||
|
* since we currently do not support programming multicast
|
||||||
|
* filters into the device.
|
||||||
|
*/
|
||||||
*total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS |
|
*total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS |
|
||||||
FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL;
|
FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user