| --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c |
| +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c |
| @@ -1029,12 +1029,21 @@ static void iwl_mvm_recalc_multicast(str |
| } |
| |
| static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw, |
| +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) |
| struct netdev_hw_addr_list *mc_list) |
| +#else |
| + int addr_count, |
| + struct dev_addr_list *mc_list) |
| +#endif |
| { |
| struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); |
| struct iwl_mcast_filter_cmd *cmd; |
| +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) |
| struct netdev_hw_addr *addr; |
| int addr_count = netdev_hw_addr_list_count(mc_list); |
| +#else |
| + struct dev_mc_list *addr; |
| +#endif |
| bool pass_all = false; |
| int len; |
| |
| @@ -1053,11 +1062,15 @@ static u64 iwl_mvm_prepare_multicast(str |
| return (u64)(unsigned long)cmd; |
| } |
| |
| +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) |
| netdev_hw_addr_list_for_each(addr, mc_list) { |
| +#else |
| + for (addr = mc_list; addr; addr = addr->next) { |
| +#endif |
| IWL_DEBUG_MAC80211(mvm, "mcast addr (%d): %pM\n", |
| - cmd->count, addr->addr); |
| + cmd->count, mc_addr(addr)); |
| memcpy(&cmd->addr_list[cmd->count * ETH_ALEN], |
| - addr->addr, ETH_ALEN); |
| + mc_addr(addr), ETH_ALEN); |
| cmd->count++; |
| } |
| |