carl9170: fix allmulticast mode
authorNicolas Cavallari <Nicolas.Cavallari@lri.fr>
Wed, 4 May 2011 13:26:52 +0000 (15:26 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 May 2011 18:59:18 +0000 (14:59 -0400)
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 <cavallar@lri.fr>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/carl9170/main.c

index 1638468be5a3cfe8e0d8586d72a3ec05f4c8e90f..7d5c65ea94e6213723ecb7a98f8222d6fa727daf 100644 (file)
@@ -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)