Commit 7de3c5dc authored by Benoit Papillault's avatar Benoit Papillault Committed by John W. Linville

zd1211rw: Fix multicast filtering.

If multicast parameter (as returned by zd_op_prepare_multicast) has
changed, no bit in changed_flags is set. To handle this situation, we do
not return if changed_flags is 0. If we do so, we will have some issue
with IPv6 which uses multicast for link layer address resolution.
Signed-off-by: default avatarBenoit Papillault <benoit.papillault@free.fr>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8a9ac160
...@@ -987,12 +987,13 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw, ...@@ -987,12 +987,13 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw,
changed_flags &= SUPPORTED_FIF_FLAGS; changed_flags &= SUPPORTED_FIF_FLAGS;
*new_flags &= SUPPORTED_FIF_FLAGS; *new_flags &= SUPPORTED_FIF_FLAGS;
/* changed_flags is always populated but this driver /*
* doesn't support all FIF flags so its possible we don't * If multicast parameter (as returned by zd_op_prepare_multicast)
* need to do anything */ * has changed, no bit in changed_flags is set. To handle this
if (!changed_flags) * situation, we do not return if changed_flags is 0. If we do so,
return; * we will have some issue with IPv6 which uses multicast for link
* layer address resolution.
*/
if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI))
zd_mc_add_all(&hash); zd_mc_add_all(&hash);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment