Skip to content

Commit

Permalink
brcmsmac: fix brcms_c_regd_init() which crashed after 11ad patch
Browse files Browse the repository at this point in the history
This patch fixes an OOPS in brcmsmac driver, which was introduced
by the 11ad patch 'cfg80211: add 802.11ad (60gHz band) support'.
The value IEEE80211_NUM_BANDS increased, which was used in the
brcms_c_regd_init() function.

Cc: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Cc: Johannes Berg <johannes.berg@intel.com>
Acked-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Arend van Spriel authored and John W. Linville committed Jul 9, 2012
1 parent 2b943a3 commit 32c336a
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions drivers/net/wireless/brcm80211/brcmsmac/channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -763,20 +763,17 @@ void brcms_c_regd_init(struct brcms_c_info *wlc)
int band_idx, i;

/* Disable any channels not supported by the phy */
for (band_idx = 0; band_idx < IEEE80211_NUM_BANDS; band_idx++) {
if (band_idx == IEEE80211_BAND_2GHZ)
band = wlc->bandstate[BAND_2G_INDEX];
else
band = wlc->bandstate[BAND_5G_INDEX];

/* skip if band not initialized */
if (band->pi == NULL)
continue;
for (band_idx = 0; band_idx < wlc->pub->_nbands; band_idx++) {
band = wlc->bandstate[band_idx];

wlc_phy_chanspec_band_validch(band->pi, band->bandtype,
&sup_chan);

sband = wiphy->bands[band_idx];
if (band_idx == BAND_2G_INDEX)
sband = wiphy->bands[IEEE80211_BAND_2GHZ];
else
sband = wiphy->bands[IEEE80211_BAND_5GHZ];

for (i = 0; i < sband->n_channels; i++) {
ch = &sband->channels[i];
if (!isset(sup_chan.vec, ch->hw_value))
Expand Down

0 comments on commit 32c336a

Please sign in to comment.