Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
d9f18155
Commit
d9f18155
authored
Jul 31, 2017
by
davidcunado-arm
Committed by
GitHub
Jul 31, 2017
Browse files
Merge pull request #1033 from davidcunado-arm/dc/psci_flush
Address edge case for stale PSCI CPU data in cache
parents
401e4911
71341d23
Changes
1
Show whitespace changes
Inline
Side-by-side
lib/psci/psci_on.c
View file @
d9f18155
...
@@ -64,7 +64,20 @@ int psci_cpu_on_start(u_register_t target_cpu,
...
@@ -64,7 +64,20 @@ int psci_cpu_on_start(u_register_t target_cpu,
/*
/*
* Generic management: Ensure that the cpu is off to be
* Generic management: Ensure that the cpu is off to be
* turned on.
* turned on.
* Perform cache maintanence ahead of reading the target CPU state to
* ensure that the data is not stale.
* There is a theoretical edge case where the cache may contain stale
* data for the target CPU data - this can occur under the following
* conditions:
* - the target CPU is in another cluster from the current
* - the target CPU was the last CPU to shutdown on its cluster
* - the cluster was removed from coherency as part of the CPU shutdown
*
* In this case the cache maintenace that was performed as part of the
* target CPUs shutdown was not seen by the current CPU's cluster. And
* so the cache may contain stale data for the target CPU.
*/
*/
flush_cpu_data_by_index
(
target_idx
,
psci_svc_cpu_data
.
aff_info_state
);
rc
=
cpu_on_validate_state
(
psci_get_aff_info_state_by_idx
(
target_idx
));
rc
=
cpu_on_validate_state
(
psci_get_aff_info_state_by_idx
(
target_idx
));
if
(
rc
!=
PSCI_E_SUCCESS
)
if
(
rc
!=
PSCI_E_SUCCESS
)
goto
exit
;
goto
exit
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment