Unverified Commit 66eb8e80 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!11101 wifi: mac80211: sdata can be NULL during AMPDU start

parents 2342b8e0 9a2085da
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -491,7 +491,7 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
{
	struct tid_ampdu_tx *tid_tx;
	struct ieee80211_local *local = sta->local;
	struct ieee80211_sub_if_data *sdata = sta->sdata;
	struct ieee80211_sub_if_data *sdata;
	struct ieee80211_ampdu_params params = {
		.sta = &sta->sta,
		.action = IEEE80211_AMPDU_TX_START,
@@ -521,6 +521,7 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
	 */
	synchronize_net();

	sdata = sta->sdata;
	params.ssn = sta->tid_seq[tid] >> 4;
	ret = drv_ampdu_action(local, sdata, &params);
	tid_tx->ssn = params.ssn;
@@ -534,6 +535,9 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
		 */
		set_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state);
	} else if (ret) {
		if (!sdata)
			return;

		ht_dbg(sdata,
		       "BA request denied - HW unavailable for %pM tid %d\n",
		       sta->sta.addr, tid);
+3 −0
Original line number Diff line number Diff line
@@ -331,6 +331,9 @@ int drv_ampdu_action(struct ieee80211_local *local,

	might_sleep();

	if (!sdata)
		return -EIO;

	sdata = get_bss_sdata(sdata);
	if (!check_sdata_in_driver(sdata))
		return -EIO;