Package: broadcom-sta-dkms Version: 6.30.223.271 It cannot build wl module with kernel 4.9 / kernel 4.6 is already out of official support / The root cause of the bug is change in kernel 4.9 headers: IEEE80211_BAND_5GHZ, IEEE80211_BAND_2GHZ, have been removed and is using only NL80211_BAND_2GHZ,NL80211_BAND_5GHZ instead,
Please produce updated package for debian, this simple patch fix the issue: --- src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 01:47:30.000000000 +0300 +++ src-mod/wl/sys/wl_cfg80211_hybrid.c 2017-03-11 07:19:33.627697948 +0200 @@ -236,7 +236,7 @@ #endif #define CHAN2G(_channel, _freq, _flags) { \ - .band = IEEE80211_BAND_2GHZ, \ + .band = NL80211_BAND_2GHZ, \ .center_freq = (_freq), \ .hw_value = (_channel), \ .flags = (_flags), \ @@ -245,7 +245,7 @@ } #define CHAN5G(_channel, _flags) { \ - .band = IEEE80211_BAND_5GHZ, \ + .band = NL80211_BAND_5GHZ, \ .center_freq = 5000 + (5 * (_channel)), \ .hw_value = (_channel), \ .flags = (_flags), \ @@ -379,7 +379,7 @@ }; static struct ieee80211_supported_band __wl_band_2ghz = { - .band = IEEE80211_BAND_2GHZ, + .band = NL80211_BAND_2GHZ, .channels = __wl_2ghz_channels, .n_channels = ARRAY_SIZE(__wl_2ghz_channels), .bitrates = wl_g_rates, @@ -387,7 +387,7 @@ }; static struct ieee80211_supported_band __wl_band_5ghz_a = { - .band = IEEE80211_BAND_5GHZ, + .band = NL80211_BAND_5GHZ, .channels = __wl_5ghz_a_channels, .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels), .bitrates = wl_a_rates, @@ -395,7 +395,7 @@ }; static struct ieee80211_supported_band __wl_band_5ghz_n = { - .band = IEEE80211_BAND_5GHZ, + .band = NL80211_BAND_5GHZ, .channels = __wl_5ghz_n_channels, .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels), .bitrates = wl_a_rates, @@ -1876,8 +1876,8 @@ wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; #endif wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); - wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; - wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; + wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; + wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; wdev->wiphy->cipher_suites = __wl_cipher_suites; wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); @@ -2000,7 +2000,7 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) freq = ieee80211_channel_to_frequency(notif_bss_info->channel, (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? - IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); + NL80211_BAND_2GHZ : NL80211_BAND_5GHZ); #else freq = ieee80211_channel_to_frequency(notif_bss_info->channel); #endif @@ -2116,7 +2116,7 @@ return err; } chan = wf_chspec_ctlchan(chanspec); - band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; + band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; freq = ieee80211_channel_to_frequency(chan, band); channel = ieee80211_get_channel(wiphy, freq); cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); @@ -2250,10 +2250,10 @@ join_params->params.chanspec_list[0] = ieee80211_frequency_to_channel(chan->center_freq); - if (chan->band == IEEE80211_BAND_2GHZ) { + if (chan->band == NL80211_BAND_2GHZ) { chanspec |= WL_CHANSPEC_BAND_2G; } - else if (chan->band == IEEE80211_BAND_5GHZ) { + else if (chan->band == NL80211_BAND_5GHZ) { chanspec |= WL_CHANSPEC_BAND_5G; } else { @@ -2885,7 +2885,7 @@ if (phy == 'n' || phy == 'a' || phy == 'v') { wiphy = wl_to_wiphy(wl); - wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n; + wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n; } return err;