diff options
Diffstat (limited to 'services/std_svc/psci/psci_off.c')
-rw-r--r-- | services/std_svc/psci/psci_off.c | 5 |
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); /* |