wifi: iwlmei: send HOST_GOES_DOWN message even if wiamt is disabled
The HOST_GOES_DOWN message should be sent even if wiamt is disabled. Otherwise wiamt may still use the shared memory (e.g. if enabled later) while it's no longer valid. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230822103048.2baad50eb1c3.If7b7c1dc2d6bfc6bacf7f6c72972f19714d9d973@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
ef030ab17e
commit
3243aee1cb
|
@ -2070,33 +2070,29 @@ static void iwl_mei_remove(struct mei_cl_device *cldev)
|
|||
|
||||
mutex_lock(&iwl_mei_mutex);
|
||||
|
||||
if (mei->amt_enabled) {
|
||||
/*
|
||||
* Tell CSME that we are going down so that it won't access the
|
||||
* memory anymore, make sure this message goes through immediately.
|
||||
*/
|
||||
mei->csa_throttled = false;
|
||||
iwl_mei_send_sap_msg(mei->cldev,
|
||||
SAP_MSG_NOTIF_HOST_GOES_DOWN);
|
||||
/* Tell CSME that we are going down so that it won't access the
|
||||
* memory anymore, make sure this message goes through immediately.
|
||||
*/
|
||||
mei->csa_throttled = false;
|
||||
iwl_mei_send_sap_msg(mei->cldev,
|
||||
SAP_MSG_NOTIF_HOST_GOES_DOWN);
|
||||
|
||||
for (i = 0; i < SEND_SAP_MAX_WAIT_ITERATION; i++) {
|
||||
if (!iwl_mei_host_to_me_data_pending(mei))
|
||||
break;
|
||||
for (i = 0; i < SEND_SAP_MAX_WAIT_ITERATION; i++) {
|
||||
if (!iwl_mei_host_to_me_data_pending(mei))
|
||||
break;
|
||||
|
||||
msleep(20);
|
||||
}
|
||||
|
||||
/*
|
||||
* If we couldn't make sure that CSME saw the HOST_GOES_DOWN
|
||||
* message, it means that it will probably keep reading memory
|
||||
* that we are going to unmap and free, expect IOMMU error
|
||||
* messages.
|
||||
*/
|
||||
if (i == SEND_SAP_MAX_WAIT_ITERATION)
|
||||
dev_err(&mei->cldev->dev,
|
||||
"Couldn't get ACK from CSME on HOST_GOES_DOWN message\n");
|
||||
msleep(20);
|
||||
}
|
||||
|
||||
/* If we couldn't make sure that CSME saw the HOST_GOES_DOWN
|
||||
* message, it means that it will probably keep reading memory
|
||||
* that we are going to unmap and free, expect IOMMU error
|
||||
* messages.
|
||||
*/
|
||||
if (i == SEND_SAP_MAX_WAIT_ITERATION)
|
||||
dev_err(&mei->cldev->dev,
|
||||
"Couldn't get ACK from CSME on HOST_GOES_DOWN message\n");
|
||||
|
||||
mutex_unlock(&iwl_mei_mutex);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue