lkml.org 
[lkml]   [2013]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 070/136 ] wireless: regulatory: fix channel disabling race condition
    3.6.11.4 stable review patch.
    If anyone has any objections, please let me know.

    ------------------

    From: Johannes Berg <johannes.berg@intel.com>

    [ Upstream commit 990de49f74e772b6db5208457b7aa712a5f4db86 ]

    When a full scan 2.4 and 5 GHz scan is scheduled, but then the 2.4 GHz
    part of the scan disables a 5.2 GHz channel due to, e.g. receiving
    country or frequency information, that 5.2 GHz channel might already
    be in the list of channels to scan next. Then, when the driver checks
    if it should do a passive scan, that will return false and attempt an
    active scan. This is not only wrong but can also lead to the iwlwifi
    device firmware crashing since it checks regulatory as well.

    Fix this by not setting the channel flags to just disabled but rather
    OR'ing in the disabled flag. That way, even if the race happens, the
    channel will be scanned passively which is still (mostly) correct.

    Cc: stable@vger.kernel.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    net/wireless/reg.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/wireless/reg.c b/net/wireless/reg.c
    index 3062b88..633806e 100644
    --- a/net/wireless/reg.c
    +++ b/net/wireless/reg.c
    @@ -874,7 +874,7 @@ static void handle_channel(struct wiphy *wiphy,
    return;

    REG_DBG_PRINT("Disabling freq %d MHz\n", chan->center_freq);
    - chan->flags = IEEE80211_CHAN_DISABLED;
    + chan->flags |= IEEE80211_CHAN_DISABLED;
    return;
    }

    --
    1.7.10.4



    \
     
     \ /
      Last update: 2013-05-18 05:21    [W:3.156 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site