lkml.org 
[lkml]   [2019]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.20 14/50] cfg80211: call disconnect_wk when AP stops
    Date
    4.20-stable review patch.  If anyone has any objections, please let me know.

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

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

    commit e005bd7ddea06784c1eb91ac5bb6b171a94f3b05 upstream.

    Since we now prevent regulatory restore during STA disconnect
    if concurrent AP interfaces are active, we need to reschedule
    this check when the AP state changes. This fixes never doing
    a restore when an AP is the last interface to stop. Or to put
    it another way: we need to re-check after anything we check
    here changes.

    Cc: stable@vger.kernel.org
    Fixes: 113f3aaa81bd ("cfg80211: Prevent regulatory restore during STA disconnect in concurrent interfaces")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/wireless/ap.c | 2 ++
    net/wireless/core.h | 2 ++
    net/wireless/sme.c | 2 +-
    3 files changed, 5 insertions(+), 1 deletion(-)

    --- a/net/wireless/ap.c
    +++ b/net/wireless/ap.c
    @@ -41,6 +41,8 @@ int __cfg80211_stop_ap(struct cfg80211_r
    cfg80211_sched_dfs_chan_update(rdev);
    }

    + schedule_work(&cfg80211_disconnect_work);
    +
    return err;
    }

    --- a/net/wireless/core.h
    +++ b/net/wireless/core.h
    @@ -444,6 +444,8 @@ void cfg80211_process_wdev_events(struct
    bool cfg80211_does_bw_fit_range(const struct ieee80211_freq_range *freq_range,
    u32 center_freq_khz, u32 bw_khz);

    +extern struct work_struct cfg80211_disconnect_work;
    +
    /**
    * cfg80211_chandef_dfs_usable - checks if chandef is DFS usable
    * @wiphy: the wiphy to validate against
    --- a/net/wireless/sme.c
    +++ b/net/wireless/sme.c
    @@ -667,7 +667,7 @@ static void disconnect_work(struct work_
    rtnl_unlock();
    }

    -static DECLARE_WORK(cfg80211_disconnect_work, disconnect_work);
    +DECLARE_WORK(cfg80211_disconnect_work, disconnect_work);


    /*

    \
     
     \ /
      Last update: 2019-02-13 19:50    [W:2.233 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site