mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
mwifiex: reduce spinlock usage in main process
We will reset more_task_flag at the end of main process routine. This optimization will help to remove spinlock operations at couple of places in the code. Signed-off-by: Cathy Luo <cluo@marvell.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
f022ea52d9
commit
91457eaa13
@ -231,11 +231,10 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
|
||||
goto exit_main_proc;
|
||||
} else {
|
||||
adapter->mwifiex_processing = true;
|
||||
spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
|
||||
}
|
||||
process_start:
|
||||
do {
|
||||
adapter->more_task_flag = false;
|
||||
spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
|
||||
if ((adapter->hw_status == MWIFIEX_HW_STATUS_CLOSING) ||
|
||||
(adapter->hw_status == MWIFIEX_HW_STATUS_NOT_READY))
|
||||
break;
|
||||
@ -275,7 +274,6 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
|
||||
adapter->pm_wakeup_fw_try = true;
|
||||
mod_timer(&adapter->wakeup_timer, jiffies + (HZ*3));
|
||||
adapter->if_ops.wakeup(adapter);
|
||||
spin_lock_irqsave(&adapter->main_proc_lock, flags);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -335,7 +333,6 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
|
||||
(adapter->ps_state == PS_STATE_PRE_SLEEP) ||
|
||||
(adapter->ps_state == PS_STATE_SLEEP_CFM) ||
|
||||
adapter->tx_lock_flag){
|
||||
spin_lock_irqsave(&adapter->main_proc_lock, flags);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -386,12 +383,14 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
|
||||
}
|
||||
break;
|
||||
}
|
||||
spin_lock_irqsave(&adapter->main_proc_lock, flags);
|
||||
} while (true);
|
||||
|
||||
spin_lock_irqsave(&adapter->main_proc_lock, flags);
|
||||
if (adapter->more_task_flag)
|
||||
if (adapter->more_task_flag) {
|
||||
adapter->more_task_flag = false;
|
||||
spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
|
||||
goto process_start;
|
||||
}
|
||||
adapter->mwifiex_processing = false;
|
||||
spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user