Currently, the driver only disable multicast filtering when the
FIF_ALLMULTI driver flag has been just set (ie,
if changed_flags& FIF_ALLMULTI and *new_flags& FIF_ALLMULTI) or else
it will reenable multicast filtering.
But next time, this condition will be false and multicast filtering
will be reenabled, even through FIF_ALLMULTI is still set.
This mean that allmulticast only works for less than two minutes in
ad-hoc mode. This patch fixes that to disable multicast filtering
as long as FIF_ALLMULTI is set.
Signed-off-by: Nicolas Cavallari <[email protected]>
---
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index 1638468..7d5c65e 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -883,7 +883,7 @@ static void carl9170_op_configure_filter(struct
ieee80211_hw *hw,
* then checking the error flags, later.
*/
- if (changed_flags& FIF_ALLMULTI&& *new_flags& FIF_ALLMULTI)
+ if (*new_flags& FIF_ALLMULTI)
multicast = ~0ULL;
if (multicast != ar->cur_mc_hash)
On Wednesday 04 May 2011 11:47:17 Nicolas Cavallari wrote:
> Currently, the driver only disable multicast filtering when the
> FIF_ALLMULTI driver flag has been just set (ie,
> if changed_flags& FIF_ALLMULTI and *new_flags& FIF_ALLMULTI) or else
> it will reenable multicast filtering.
>
> But next time, this condition will be false and multicast filtering
> will be reenabled, even through FIF_ALLMULTI is still set.
>
> This mean that allmulticast only works for less than two minutes in
> ad-hoc mode. This patch fixes that to disable multicast filtering
> as long as FIF_ALLMULTI is set.
>
> Signed-off-by: Nicolas Cavallari <[email protected]>
Acked-by: Christian Lamparter <[email protected]>
[Just a minor niggle]
> ---
> diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
> index 1638468..7d5c65e 100644
> --- a/drivers/net/wireless/ath/carl9170/main.c
> +++ b/drivers/net/wireless/ath/carl9170/main.c
> @@ -883,7 +883,7 @@ static void carl9170_op_configure_filter(struct
> ieee80211_hw *hw,
> * then checking the error flags, later.
> */
>
> - if (changed_flags& FIF_ALLMULTI&& *new_flags& FIF_ALLMULTI)
^^^ ^^^ ^^^
It looks like your mailer realigned the spaces around the operators
and added a line-wrap so it won't apply without some help. Can you
fix the problem and send the patch again?
Thanks,
Christian