Unverified Commit 4233328a authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!12678 CVE-2024-47673

Merge Pull Request from: @ci-robot 
 
PR sync from: Zhang Changzhong <zhangchangzhong@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/MSK7ODZCUSTNB5QR3ETROX6G4MLIY5NB/ 
Emmanuel Grumbach (1):
  wifi: iwlwifi: mvm: pause TCM when the firmware is stopped

Johannes Berg (1):
  iwlwifi: mvm: move iwl_mvm_stop_device() out of line


-- 
2.9.5
 
https://gitee.com/src-openeuler/kernel/issues/IAVU87 
 
Link:https://gitee.com/openeuler/kernel/pulls/12678

 

Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parents 1a5a3921 fd2eab38
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -1948,16 +1948,7 @@ static inline u32 iwl_mvm_flushable_queues(struct iwl_mvm *mvm)
		~BIT(IWL_MVM_DQA_CMD_QUEUE));
}

static inline void iwl_mvm_stop_device(struct iwl_mvm *mvm)
{
	lockdep_assert_held(&mvm->mutex);
	iwl_fw_cancel_timestamp(&mvm->fwrt);
	clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);
	iwl_fw_dbg_stop_sync(&mvm->fwrt);
	iwl_trans_stop_device(mvm->trans);
	iwl_free_fw_paging(&mvm->fwrt);
	iwl_fw_dump_conf_clear(&mvm->fwrt);
}
void iwl_mvm_stop_device(struct iwl_mvm *mvm);

/* Re-configure the SCD for a queue that has already been configured */
int iwl_mvm_reconfig_scd(struct iwl_mvm *mvm, int queue, int fifo, int sta_id,
+16 −0
Original line number Diff line number Diff line
@@ -902,6 +902,22 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
	return NULL;
}

void iwl_mvm_stop_device(struct iwl_mvm *mvm)
{
	lockdep_assert_held(&mvm->mutex);

	iwl_fw_cancel_timestamp(&mvm->fwrt);

	clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);

	iwl_mvm_pause_tcm(mvm, false);

	iwl_fw_dbg_stop_sync(&mvm->fwrt);
	iwl_trans_stop_device(mvm->trans);
	iwl_free_fw_paging(&mvm->fwrt);
	iwl_fw_dump_conf_clear(&mvm->fwrt);
}

static void iwl_op_mode_mvm_stop(struct iwl_op_mode *op_mode)
{
	struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode);