lkml.org 
[lkml]   [2006]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 08/11] ipw2200: Filter unsupported channels out in ad-hoc mode
    -stable review patch.  If anyone has any objections, please let us know.
    ------------------

    From: Zhu Yi <yi.zhu@intel.com>

    Currently iwlist ethX freq[uency]/channel lists all the channels the card
    supported for the current region, which includes some channels can only
    be used in infrastructure mode. This patch filters these channels out if
    the card is currently in ad-hoc mode.

    Signed-off-by: Zhu Yi <yi.zhu@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>

    ---

    drivers/net/wireless/ipw2200.c | 16 ++++++++++++----
    1 file changed, 12 insertions(+), 4 deletions(-)

    --- linux-2.6.16.19.orig/drivers/net/wireless/ipw2200.c
    +++ linux-2.6.16.19/drivers/net/wireless/ipw2200.c
    @@ -8391,20 +8391,28 @@ static int ipw_wx_get_range(struct net_d

    i = 0;
    if (priv->ieee->mode & (IEEE_B | IEEE_G)) {
    - for (j = 0; j < geo->bg_channels && i < IW_MAX_FREQUENCIES;
    - i++, j++) {
    + for (j = 0; j < geo->bg_channels && i < IW_MAX_FREQUENCIES; j++) {
    + if ((priv->ieee->iw_mode == IW_MODE_ADHOC) &&
    + (geo->bg[j].flags & IEEE80211_CH_PASSIVE_ONLY))
    + continue;
    +
    range->freq[i].i = geo->bg[j].channel;
    range->freq[i].m = geo->bg[j].freq * 100000;
    range->freq[i].e = 1;
    + i++;
    }
    }

    if (priv->ieee->mode & IEEE_A) {
    - for (j = 0; j < geo->a_channels && i < IW_MAX_FREQUENCIES;
    - i++, j++) {
    + for (j = 0; j < geo->a_channels && i < IW_MAX_FREQUENCIES; j++) {
    + if ((priv->ieee->iw_mode == IW_MODE_ADHOC) &&
    + (geo->a[j].flags & IEEE80211_CH_PASSIVE_ONLY))
    + continue;
    +
    range->freq[i].i = geo->a[j].channel;
    range->freq[i].m = geo->a[j].freq * 100000;
    range->freq[i].e = 1;
    + i++;
    }
    }

    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-06-02 21:49    [W:0.021 / U:34.168 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site