[Madwifi-cvs] revision 4133 committed
Status: Beta
Brought to you by:
otaku
From: Pavel R. <svn...@ma...> - 2010-06-20 12:34:16
|
Project : madwifi Revision : 4133 Author : proski (Pavel Roskin) Date : 2010-06-20 14:13:10 +0200 (Sun, 20 Jun 2010) Log Message : Fix compatibility with kernels 2.6.0, 2.6.1, 2.6.2, 2.6.11 and 2.6.35 References: r4130, r4131, r4132 Affected Files: * madwifi/branches/madwifi-0.9.4/ath/if_ath.c updated * madwifi/branches/madwifi-0.9.4/include/compat.h updated * madwifi/branches/madwifi-dfs/ath/if_ath.c updated * madwifi/branches/madwifi-dfs/include/compat.h updated * madwifi/branches/madwifi-dfs/net80211/ieee80211_scan_ap.c updated Modified: madwifi/branches/madwifi-0.9.4/ath/if_ath.c =================================================================== --- madwifi/branches/madwifi-0.9.4/ath/if_ath.c 2010-06-19 18:27:20 UTC (rev 4132) +++ madwifi/branches/madwifi-0.9.4/ath/if_ath.c 2010-06-20 12:13:10 UTC (rev 4133) @@ -3496,7 +3496,7 @@ { struct ieee80211com *ic = &sc->sc_ic; struct ieee80211vap *vap; - struct dev_mc_list *mc; + struct ath_netdev_hw_addr *ha; u_int32_t val; u_int8_t pos; @@ -3504,11 +3504,11 @@ /* XXX locking */ TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { struct net_device *dev = vap->iv_dev; - for (mc = dev->mc_list; mc; mc = mc->next) { + netdev_for_each_mc_addr (ha, dev) { /* calculate XOR of eight 6-bit values */ - val = LE_READ_4(mc->dmi_addr + 0); + val = LE_READ_4(ath_ha_addr(ha) + 0); pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; - val = LE_READ_4(mc->dmi_addr + 3); + val = LE_READ_4(ath_ha_addr(ha) + 3); pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; pos &= 0x3f; mfilt[pos / 32] |= (1 << (pos % 32)); Modified: madwifi/branches/madwifi-0.9.4/include/compat.h =================================================================== --- madwifi/branches/madwifi-0.9.4/include/compat.h 2010-06-19 18:27:20 UTC (rev 4132) +++ madwifi/branches/madwifi-0.9.4/include/compat.h 2010-06-20 12:13:10 UTC (rev 4133) @@ -65,6 +65,19 @@ (type *)( (char *)__mptr - offsetof(type,member) );}) #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) +#define netdev_for_each_mc_addr(mclist, dev) \ + for (mclist = dev->mc_list; mclist; mclist = mclist->next) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) +#define ath_netdev_hw_addr dev_mc_list +#define ath_ha_addr(ha) ha->dmi_addr +#else +#define ath_netdev_hw_addr netdev_hw_addr +#define ath_ha_addr(ha) ha->addr +#endif + /* * BSD/Linux compatibility shims. These are used mainly to * minimize differences when importing necesary BSD code. @@ -153,7 +166,9 @@ #define IRQF_SHARED SA_SHIRQ #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27)) || \ + ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && \ + ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3)))) #define netdev_priv(_netdev) ((_netdev)->priv) #endif Modified: madwifi/branches/madwifi-dfs/ath/if_ath.c =================================================================== --- madwifi/branches/madwifi-dfs/ath/if_ath.c 2010-06-19 18:27:20 UTC (rev 4132) +++ madwifi/branches/madwifi-dfs/ath/if_ath.c 2010-06-20 12:13:10 UTC (rev 4133) @@ -4459,7 +4459,7 @@ { struct ieee80211com *ic = &sc->sc_ic; struct ieee80211vap *vap; - struct dev_mc_list *mc; + struct ath_netdev_hw_addr *ha; u_int32_t val; u_int8_t pos; @@ -4467,11 +4467,11 @@ /* XXX locking */ TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { struct net_device *dev = vap->iv_dev; - for (mc = dev->mc_list; mc; mc = mc->next) { + netdev_for_each_mc_addr (ha, dev) { /* calculate XOR of eight 6-bit values */ - val = LE_READ_4(mc->dmi_addr + 0); + val = LE_READ_4(ath_ha_addr(ha) + 0); pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; - val = LE_READ_4(mc->dmi_addr + 3); + val = LE_READ_4(ath_ha_addr(ha) + 3); pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; pos &= 0x3f; mfilt[pos / 32] |= (1 << (pos % 32)); Modified: madwifi/branches/madwifi-dfs/include/compat.h =================================================================== --- madwifi/branches/madwifi-dfs/include/compat.h 2010-06-19 18:27:20 UTC (rev 4132) +++ madwifi/branches/madwifi-dfs/include/compat.h 2010-06-20 12:13:10 UTC (rev 4133) @@ -77,6 +77,19 @@ #define NETDEV_TX_BUSY 1 #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) +#define netdev_for_each_mc_addr(mclist, dev) \ + for (mclist = dev->mc_list; mclist; mclist = mclist->next) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) +#define ath_netdev_hw_addr dev_mc_list +#define ath_ha_addr(ha) ha->dmi_addr +#else +#define ath_netdev_hw_addr netdev_hw_addr +#define ath_ha_addr(ha) ha->addr +#endif + /* * BSD/Linux compatibility shims. These are used mainly to * minimize differences when importing necesary BSD code. @@ -175,7 +188,9 @@ #define IRQF_SHARED SA_SHIRQ #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27)) || \ + ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && \ + ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3)))) #define netdev_priv(_netdev) ((_netdev)->priv) #endif Modified: madwifi/branches/madwifi-dfs/net80211/ieee80211_scan_ap.c =================================================================== --- madwifi/branches/madwifi-dfs/net80211/ieee80211_scan_ap.c 2010-06-19 18:27:20 UTC (rev 4132) +++ madwifi/branches/madwifi-dfs/net80211/ieee80211_scan_ap.c 2010-06-20 12:13:10 UTC (rev 4133) @@ -48,7 +48,7 @@ #include <linux/init.h> #include <linux/delay.h> -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) /* Copied from Linux lib/sort.c */ static void u32_swap(void *a, void *b, int size) { |