diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2018-04-05 16:27:18 +1000 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-05-04 15:00:37 +1000 |
commit | 47a9b5515475d91cb70791fe55182cf2fead135d (patch) | |
tree | a4e5128dff8bc22f8257abc7c673edc6f2453781 /hw/pci-host/uninorth.c | |
parent | da20aed12a983dcaa6ccef80c0175f438e2780e7 (diff) |
spapr: Clean up handling of LPCR power-saving exit bits
To prevent spurious wakeups on cpus that are supposed to be disabled, we
need to clear the LPCR bits which control certain wakeup events.
spapr_cpu_reset() has separate cases here for boot and non-boot (initially
inactive) cpus. rtas_start_cpu() then turns the LPCR bits on when the
non-boot cpus are activated.
But explicit checks against first_cpu are not how we usually do things:
instead spapr_cpu_reset() generally sets things up for non-boot (inactive)
cpus, then spapr_machine_reset() and/or rtas_start_cpu() override as
necessary.
So, do that instead. Because the LPCR activation is identical for boot
cpus and non-boot cpus just activated with rtas_start_cpu() we can put the
code common in spapr_cpu_set_entry_state().
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Tested-by: Cédric Le Goater <clg@kaod.org>
Diffstat (limited to 'hw/pci-host/uninorth.c')
0 files changed, 0 insertions, 0 deletions