• Johannes Berg's avatar
    cfg80211: restore regulatory without calling userspace · e646a025
    Johannes Berg authored
    Jouni reports that in some cases it is possible that getting
    disconnected (or stopping AP, after previous patches) results
    in further operations hitting the window within the regulatory
    core restoring the regdomain to the defaults. The reason for
    this is that we have to call out to CRDA or otherwise do some
    asynchronous work, and thus can't do the restore atomically.
    
    However, we've previously seen all the data we need to do the
    restore, so we can hang on to that data and use it later for
    the restore. This makes the whole thing happen within a single
    locked section and thus atomic.
    
    However, we can't *always* do this - there are unfortunately
    cases where the restore needs to re-request, because this is
    also used (abused?) as an error recovery process, so make the
    new behaviour optional and only use it when doing a regular
    restore as described above.
    Reported-by: default avatarJouni Malinen <j@w1.fi>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    e646a025
reg.h 7.48 KB