mac80211: fix ieee80211_set_multicast_list
I recently experienced unexplainable behaviour with the b43 driver when I had broken firmware uploaded. The cause may have been that promisc mode was not correctly enabled or disabled and this bug may have been the cause. Note how the values are compared later in the function so just doing the & will result in the wrong thing being compared and the test being false almost always. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Este cometimento está contido em:

cometido por
John W. Linville

ascendente
d9f8bcbf67
cometimento
b52f2198ac
@@ -366,8 +366,8 @@ static void ieee80211_set_multicast_list(struct net_device *dev)
|
||||
|
||||
allmulti = !!(dev->flags & IFF_ALLMULTI);
|
||||
promisc = !!(dev->flags & IFF_PROMISC);
|
||||
sdata_allmulti = sdata->flags & IEEE80211_SDATA_ALLMULTI;
|
||||
sdata_promisc = sdata->flags & IEEE80211_SDATA_PROMISC;
|
||||
sdata_allmulti = !!(sdata->flags & IEEE80211_SDATA_ALLMULTI);
|
||||
sdata_promisc = !!(sdata->flags & IEEE80211_SDATA_PROMISC);
|
||||
|
||||
if (allmulti != sdata_allmulti) {
|
||||
if (dev->flags & IFF_ALLMULTI)
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador