Relevant kernel commit: Johannes Berg : https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475 Presented in issue #4708. The reason is, according to the AUR, that two enum values were specified in the kernel , IEEE80211_BAND_2GHZ and NL80211_BAND_2GHZ. IEEE80211_BAND* were pulled out in 4.7, but this code makes heavy use of that enum. The simple fix is to re-create the values. This patch came from the folks at Manjaro. https://github.com/manjaro/packages-extra/blob/master/broadcom-wl-dkms/linux-47.patch --- src/wl/sys/wl_linux.h 2016-06-04 15:24:22.915341000 +0200 +++ src/wl/sys/wl_linux.h 2016-06-04 15:29:36.236136244 +0200 @@ -18,6 +18,13 @@ * $Id: wl_linux.h 369548 2012-11-19 09:01:01Z $ */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)) +#define ieee80211_band nl80211_band +#define IEEE80211_BAND_2GHZ NL80211_BAND_2GHZ +#define IEEE80211_BAND_5GHZ NL80211_BAND_5GHZ +#define IEEE80211_NUM_BANDS NUM_NL80211_BANDS +#endif + #ifndef _wl_linux_h_ #define _wl_linux_h_ --- src/wl/sys/wl_cfg80211_hybrid.h 2016-06-04 15:34:41.123022255 +0200 +++ src/wl/sys/wl_cfg80211_hybrid.h 2016-06-04 15:37:25.391772105 +0200 @@ -19,6 +19,13 @@ * $Id: wl_cfg80211.h,v 1.1.8.1 2011-01-26 00:57:46 $ */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)) +#define ieee80211_band nl80211_band +#define IEEE80211_BAND_2GHZ NL80211_BAND_2GHZ +#define IEEE80211_BAND_5GHZ NL80211_BAND_5GHZ +#define IEEE80211_NUM_BANDS NUM_NL80211_BANDS +#endif + #ifndef _wl_cfg80211_h_ #define _wl_cfg80211_h_