}
return hash.low | ((u64)hash.high << 32);
+--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
++++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+@@ -726,7 +726,11 @@ static void _dhd_set_multicast_list(dhd_
+ netdev_for_each_mc_addr(ha, dev) {
+ if (!cnt)
+ break;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ memcpy(bufp, ha->addr, ETHER_ADDR_LEN);
++#else
++ memcpy(bufp, ha->dmi_addr, ETHER_ADDR_LEN);
++#endif
+ bufp += ETHER_ADDR_LEN;
+ cnt--;
+ }
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1763,7 +1763,11 @@ struct ieee80211_ops {
+@@ -1770,7 +1770,11 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -724,7 +724,12 @@ struct ieee80211_local {
+@@ -725,7 +725,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;
/* aggregated multicast list */
PCI_CFLAGS := -DWLC_LOW
+--- a/drivers/staging/brcm80211/brcmfmac/Makefile
++++ b/drivers/staging/brcm80211/brcmfmac/Makefile
+@@ -33,9 +33,9 @@ ccflags-y := \
+ -DPKT_FILTER_SUPPORT \
+ -DSHOW_EVENTS \
+ -DTOE \
+- -Idrivers/staging/brcm80211/brcmfmac \
+- -Idrivers/staging/brcm80211/include \
+- -Idrivers/staging/brcm80211/util
++ -I$(obj) \
++ -I$(obj)/../include \
++ -I$(obj)/../util
+
+ DHDOFILES = dhd_linux.o ../util/linux_osl.o ../util/bcmutils.o dhd_common.o dhd_custom_gpio.o \
+ wl_iw.o wl_cfg80211.o ../util/siutils.o ../util/sbutils.o ../util/aiutils.o ../util/hndpmu.o ../util/bcmwifi.o dhd_sdio.o \