Commit 3243aee1 authored by Avraham Stern's avatar Avraham Stern Committed by Johannes Berg

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: default avatarAvraham Stern <avraham.stern@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230822103048.2baad50eb1c3.If7b7c1dc2d6bfc6bacf7f6c72972f19714d9d973@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent ef030ab1
...@@ -2070,33 +2070,29 @@ static void iwl_mei_remove(struct mei_cl_device *cldev) ...@@ -2070,33 +2070,29 @@ static void iwl_mei_remove(struct mei_cl_device *cldev)
mutex_lock(&iwl_mei_mutex); 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.
* 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,
mei->csa_throttled = false; SAP_MSG_NOTIF_HOST_GOES_DOWN);
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;
msleep(20); 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");
} }
/* 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); mutex_unlock(&iwl_mei_mutex);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment