lkml.org 
[lkml]   [2010]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [14/223] mac80211: fix offchannel assumption upon association
    Date
    2.6.35-longterm review patch.  If anyone has any objections, please let me know.

    ------------------
    From: Luis R. Rodriguez <lrodriguez@atheros.com>

    commit 8d4780eb1ece4e8109b4f6b2e5e61f7fc593c3f4 upstream.

    Association is dealt with as an atomic offchannel operation,
    we do this because we don't know we are associated until we
    get the associatin response from the AP. When we do get the
    associatin response though we were never clearing the offchannel
    state. This has a few implications, we told drivers we were
    still offchannel, and the first configured TX power for the
    channel does not take into account any power constraints.

    For ath9k this meant ANI calibration would not start upon
    association, and we'd have to wait until the first bgscan
    to be triggered. There may be other issues this resolves
    but I'm too lazy to comb the code to check.

    Cc: Amod Bodas <amod.bodas@atheros.com>
    Cc: Vasanth Thiagarajan <vasanth.thiagarajan@atheros.com>
    Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

    ---
    net/mac80211/main.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    Index: linux/net/mac80211/main.c
    ===================================================================
    --- linux.orig/net/mac80211/main.c
    +++ linux/net/mac80211/main.c
    @@ -106,7 +106,8 @@ int ieee80211_hw_config(struct ieee80211
    if (scan_chan) {
    chan = scan_chan;
    channel_type = NL80211_CHAN_NO_HT;
    - } else if (local->tmp_channel) {
    + } else if (local->tmp_channel &&
    + local->oper_channel != local->tmp_channel) {
    chan = scan_chan = local->tmp_channel;
    channel_type = local->tmp_channel_type;
    } else {

    \
     
     \ /
      Last update: 2010-12-13 01:29    [W:2.191 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site