| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Luca Coelho <luciano.coelho@intel.com> |
| Date: Tue, 2 May 2017 17:56:21 +0300 |
| Subject: mac80211: bail out from prep_connection() if a reconfig is ongoing |
| |
| From: Luca Coelho <luciano.coelho@intel.com> |
| |
| |
| [ Upstream commit f8860ce836f2d502b07ef99559707fe55d90f5bc ] |
| |
| If ieee80211_hw_restart() is called during authentication, the |
| authentication process will continue, causing the driver to be called |
| in a wrong state. This ultimately causes an oops in the iwlwifi |
| driver (at least). |
| |
| This fixes bugzilla 195299 partly. |
| |
| Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195299 |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/mac80211/mlme.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/net/mac80211/mlme.c |
| +++ b/net/mac80211/mlme.c |
| @@ -4332,6 +4332,10 @@ static int ieee80211_prep_connection(str |
| if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data)) |
| return -EINVAL; |
| |
| + /* If a reconfig is happening, bail out */ |
| + if (local->in_reconfig) |
| + return -EBUSY; |
| + |
| if (assoc) { |
| rcu_read_lock(); |
| have_sta = sta_info_get(sdata, cbss->bssid); |