@@ -95,12 +95,7 @@ void wfx_hw_scan_work(struct work_struct *work)
mutex_unlock(&wvif->wdev->conf_mutex);
mutex_unlock(&wvif->scan_lock);
__ieee80211_scan_completed_compat(wvif->wdev->hw, ret < 0);
- if (wvif->delayed_unjoin) {
- wvif->delayed_unjoin = false;
- wfx_tx_lock(wvif->wdev);
- if (!schedule_work(&wvif->unjoin_work))
- wfx_tx_unlock(wvif->wdev);
- } else if (wvif->delayed_link_loss) {
+ if (wvif->delayed_link_loss) {
wvif->delayed_link_loss = false;
wfx_cqm_bssloss_sm(wvif, 1, 0, 0);
}
@@ -66,10 +66,6 @@ void wfx_cqm_bssloss_sm(struct wfx_vif *wvif, int init, int good, int bad)
wvif->delayed_link_loss = 0;
cancel_work_sync(&wvif->bss_params_work);
- /* If we have a pending unjoin */
- if (wvif->delayed_unjoin)
- goto end;
-
if (init) {
schedule_delayed_work(&wvif->bss_loss_work, HZ);
wvif->bss_loss_state = 0;
@@ -501,16 +497,6 @@ static void wfx_do_unjoin(struct wfx_vif *wvif)
{
mutex_lock(&wvif->wdev->conf_mutex);
- if (!mutex_trylock(&wvif->scan_lock)) {
- if (wvif->delayed_unjoin)
- dev_dbg(wvif->wdev->dev,
- "delayed unjoin is already scheduled\n");
- else
- wvif->delayed_unjoin = true;
- goto done;
- }
- mutex_unlock(&wvif->scan_lock);
-
wvif->delayed_link_loss = false;
if (!wvif->state)
@@ -122,7 +122,6 @@ struct wfx_vif {
struct work_struct set_cts_work;
int join_complete_status;
- bool delayed_unjoin;
struct work_struct unjoin_work;
/* avoid some operations in parallel with scan */