summaryrefslogtreecommitdiff
path: root/services/std_svc/psci/psci_off.c
diff options
context:
space:
mode:
Diffstat (limited to 'services/std_svc/psci/psci_off.c')
-rw-r--r--services/std_svc/psci/psci_off.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/services/std_svc/psci/psci_off.c b/services/std_svc/psci/psci_off.c
index 9ed6f0cf..cef66689 100644
--- a/services/std_svc/psci/psci_off.c
+++ b/services/std_svc/psci/psci_off.c
@@ -129,10 +129,13 @@ exit:
* Set the affinity info state to OFF. This writes directly to
* main memory as caches are disabled, so cache maintenance is
* required to ensure that later cached reads of aff_info_state
- * return AFF_STATE_OFF.
+ * return AFF_STATE_OFF. A dsbish() ensures ordering of the
+ * update to the affinity info state prior to cache line
+ * invalidation.
*/
flush_cpu_data(psci_svc_cpu_data.aff_info_state);
psci_set_aff_info_state(AFF_STATE_OFF);
+ dsbish();
inv_cpu_data(psci_svc_cpu_data.aff_info_state);
/*