Date: Fri, 16 Jan 2009 20:38:42 +0000 (UTC) From: Sam Leffler <sam@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r187342 - head/sbin/ifconfig Message-ID: <200901162038.n0GKcgx1017878@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sam Date: Fri Jan 16 20:38:42 2009 New Revision: 187342 URL: http://svn.freebsd.org/changeset/base/187342 Log: Fix 1/2 and 1/4 width channel handling for non-GSM operation: o correct typo that caused random channel selection o explicitly add 1/2 and 1/4 width channels because channel lookups match flags that include IEEE80211_CHANNEL_HALF and IEEE80211_CHANNEL_QUARTER Modified: head/sbin/ifconfig/ifieee80211.c Modified: head/sbin/ifconfig/ifieee80211.c ============================================================================== --- head/sbin/ifconfig/ifieee80211.c Fri Jan 16 19:43:21 2009 (r187341) +++ head/sbin/ifconfig/ifieee80211.c Fri Jan 16 20:38:42 2009 (r187342) @@ -1806,7 +1806,7 @@ regdomain_addchans(struct ieee80211req_c continue; } if ((flags & IEEE80211_CHAN_QUARTER) && - ((chanFlags & IEEE80211_CHAN_HALF) == 0 && + ((chanFlags & IEEE80211_CHAN_QUARTER) == 0 && (flags & IEEE80211_CHAN_GSM) == 0)) { if (verbose) printf("%u: skip, device does not support quarter-rate channels\n", freq); @@ -1900,12 +1900,26 @@ regdomain_makechannels( if (!LIST_EMPTY(&rd->bands_11b)) regdomain_addchans(ci, &rd->bands_11b, reg, IEEE80211_CHAN_B, &dc->dc_chaninfo); - if (!LIST_EMPTY(&rd->bands_11g)) + if (!LIST_EMPTY(&rd->bands_11g)) { regdomain_addchans(ci, &rd->bands_11g, reg, IEEE80211_CHAN_G, &dc->dc_chaninfo); - if (!LIST_EMPTY(&rd->bands_11a)) + regdomain_addchans(ci, &rd->bands_11g, reg, + IEEE80211_CHAN_G | IEEE80211_CHAN_HALF, + &dc->dc_chaninfo); + regdomain_addchans(ci, &rd->bands_11g, reg, + IEEE80211_CHAN_G | IEEE80211_CHAN_QUARTER, + &dc->dc_chaninfo); + } + if (!LIST_EMPTY(&rd->bands_11a)) { regdomain_addchans(ci, &rd->bands_11a, reg, IEEE80211_CHAN_A, &dc->dc_chaninfo); + regdomain_addchans(ci, &rd->bands_11a, reg, + IEEE80211_CHAN_A | IEEE80211_CHAN_HALF, + &dc->dc_chaninfo); + regdomain_addchans(ci, &rd->bands_11a, reg, + IEEE80211_CHAN_A | IEEE80211_CHAN_QUARTER, + &dc->dc_chaninfo); + } if (!LIST_EMPTY(&rd->bands_11na)) { regdomain_addchans(ci, &rd->bands_11na, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT20,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901162038.n0GKcgx1017878>