22 Nov, 2011

2 commits


26 Aug, 2011

1 commit


23 Nov, 2010

1 commit

  • When two cards are connected with the same regulatory domain
    if CRDA had a delayed response then cfg80211's own set regulatory
    domain would still be the world regulatory domain. There was a bug
    on cfg80211's logic such that it assumed that once you pegged a
    request as the last request it was already the currently set
    regulatory domain. This would mean we would race setting a stale
    regulatory domain to secondary cards which had the same regulatory
    domain since the alpha2 would match.

    We fix this by processing each regulatory request atomically,
    and only move on to the next one once we get it fully processed.
    In the case CRDA is not present we will simply world roam.

    This issue is only present when you have a slow system and the
    CRDA processing is delayed. Because of this it is not a known
    regression.

    Without this fix when a delay is present with CRDA the second card
    would end up with an intersected regulatory domain and not allow it
    to use the channels it really is designed for. When two cards with
    two different regulatory domains were inserted you'd end up
    rejecting the second card's regulatory domain request.
    This fails with mac80211_hswim's regtest=2 (two requests, same alpha2)
    and regtest=3 (two requests, different alpha2) module parameter
    options.

    This was reproduced and tested against mac80211_hwsim using this
    CRDA delayer:

    #!/bin/bash
    echo $COUNTRY >> /tmp/log
    sleep 2
    /sbin/crda.orig

    And these regulatory tests:

    modprobe mac80211_hwsim regtest=2
    modprobe mac80211_hwsim regtest=3

    Reported-by: Mark Mentovai
    Signed-off-by: Luis R. Rodriguez
    Tested-by: Mark Mentovai
    Tested-by: Bruno Randolf
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

21 Jul, 2010

1 commit

  • The meaning and/or usage of the country IE is somewhat poorly defined.
    In practice, this means that regulatory rulesets in a country IE are
    often incomplete and might be untrustworthy. This removes the code
    associated with interpreting those rulesets while preserving respect
    for country "alpha2" codes also contained in the country IE.

    Signed-off-by: John W. Linville

    John W. Linville
     

02 Feb, 2010

1 commit

  • This adds a new regulatory hint to be used when we know all
    devices have been disconnected and idle. This can happen
    when we suspend, for instance. When we disconnect we can
    no longer assume the same regulatory rules learned from
    a country IE or beacon hints are applicable so restore
    regulatory settings to an initial state.

    Since driver hints are cached on the wiphy that called
    the hint, those hints are not reproduced onto cfg80211
    as the wiphy will respect its own wiphy->regd regardless.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

23 Apr, 2009

1 commit

  • Trying to separate header files into net/wireless.h and
    net/cfg80211.h has been a source of confusion. Remove
    net/wireless.h (because there also is the linux/wireless.h)
    and subsume everything into net/cfg80211.h -- except the
    definitions for regulatory structures which get moved to
    a new header net/regulatory.h.

    The "new" net/cfg80211.h is now divided into sections.

    There are no real changes in this patch but code shuffling
    and some very minor documentation fixes.

    I have also, to make things reflect reality, put in a
    copyright line for Luis to net/regulatory.h since that
    is probably exclusively written by him but was formerly
    in a file that only had my copyright line.

    Signed-off-by: Johannes Berg
    Cc: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Johannes Berg