Commit 7dd231eb authored by Naftali Goldstein's avatar Naftali Goldstein Committed by Johannes Berg
Browse files

mac80211: drop the connection if firmware crashed while in CSA

parent f12ce9f6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1660,6 +1660,8 @@ void ieee80211_mgd_conn_tx_status(struct ieee80211_sub_if_data *sdata,
void ieee80211_mgd_quiesce(struct ieee80211_sub_if_data *sdata);
void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata);
void ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata);
void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
				   u8 *bssid, u8 reason, bool tx);

/* IBSS code */
void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local);
+8 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 * Copyright 2006-2007	Jiri Benc <jbenc@suse.cz>
 * Copyright 2013-2014  Intel Mobile Communications GmbH
 * Copyright (C) 2017     Intel Deutschland GmbH
 * Copyright (C) 2018 - 2019 Intel Corporation
 * Copyright (C) 2018-2021 Intel Corporation
 */

#include <net/mac80211.h>
@@ -282,6 +282,13 @@ static void ieee80211_restart_work(struct work_struct *work)
			 * Then we can have a race...
			 */
			cancel_work_sync(&sdata->u.mgd.csa_connection_drop_work);
			if (sdata->vif.csa_active) {
				sdata_lock(sdata);
				ieee80211_sta_connection_lost(sdata,
							      sdata->u.mgd.associated->bssid,
							      WLAN_REASON_UNSPECIFIED, false);
				sdata_unlock(sdata);
			}
		}
		flush_delayed_work(&sdata->dec_tailroom_needed_wk);
	}
+2 −2
Original line number Diff line number Diff line
@@ -4384,7 +4384,7 @@ static void ieee80211_sta_timer(struct timer_list *t)
	ieee80211_queue_work(&sdata->local->hw, &sdata->work);
}

static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
				   u8 *bssid, u8 reason, bool tx)
{
	u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN];