mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 14:44:12 +00:00
wifi: mac80211: fix prep_connection error path
[ Upstream commit 2e6bd24339
]
If prep_channel fails in prep_connection, the code releases
the deflink's chanctx, which is wrong since we may be using
a different link. It's already wrong to even do that always
though, since we might still have the station. Remove it
only if prep_channel succeeded and later updates fail.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240318184907.2780c1f08c3d.I033c9b15483933088f32a2c0789612a33dd33d82@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1160ef9b90
commit
6ebdead876
1 changed files with 3 additions and 2 deletions
|
@ -7294,7 +7294,7 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,
|
|||
sdata_info(sdata,
|
||||
"failed to insert STA entry for the AP (error %d)\n",
|
||||
err);
|
||||
goto out_err;
|
||||
goto out_release_chan;
|
||||
}
|
||||
} else
|
||||
WARN_ON_ONCE(!ether_addr_equal(link->u.mgd.bssid, cbss->bssid));
|
||||
|
@ -7305,8 +7305,9 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,
|
|||
|
||||
return 0;
|
||||
|
||||
out_release_chan:
|
||||
ieee80211_link_release_channel(link);
|
||||
out_err:
|
||||
ieee80211_link_release_channel(&sdata->deflink);
|
||||
ieee80211_vif_set_links(sdata, 0, 0);
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue