1 diff -rauN madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c madwifi-hal-0.10.5.6-r4126-20100324-ticket#2048-patch/ath/if_ath.c
2 --- madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c 2010-01-18 15:21:22.000000000 +0100
3 +++ madwifi-hal-0.10.5.6-r4126-20100324-ticket#2048-patch/ath/if_ath.c 2010-09-09 18:22:00.000000000 +0200
6 struct ieee80211com *ic = &sc->sc_ic;
7 struct ieee80211vap *vap;
8 - struct dev_mc_list *mc;
9 + struct netdev_hw_addr *ha;
14 @@ -4265,11 +4266,11 @@
16 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
17 struct net_device *dev = vap->iv_dev;
18 - for (mc = dev->mc_list; mc; mc = mc->next) {
19 + netdev_for_each_mc_addr(ha, dev) {
20 /* calculate XOR of eight 6-bit values */
21 - val = LE_READ_4(mc->dmi_addr + 0);
22 + val = LE_READ_4(ha->addr + 0);
23 pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
24 - val = LE_READ_4(mc->dmi_addr + 3);
25 + val = LE_READ_4(ha->addr + 3);
26 pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
28 mfilt[pos / 32] |= (1 << (pos % 32));