Skip to contentSkip to conversation

carl9170: fix allmulticast mode

PATCH In review Nicolas Cavallari 2 participants 2 messages May 4, 2011 CARL9170 Linux community wireless driver

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 carl9170: fix allmulticast mode

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.

---

drivers/net/wireless/ath/carl9170/main.c +0 -0
index 1638468..7d5c65e 100644
@@ -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)
maintainer Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · 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.

Quoted 8 lines

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.

[Just a minor niggle]

drivers/net/wireless/ath/carl9170/main.c static void carl9170_op_configure_filter(struct · line 887

Quoted 11 lines

---

drivers/net/wireless/ath/carl9170/main.c +0 -1
index 1638468..7d5c65e 100644
@@ -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