]> Git Repo - qemu.git/commit
spapr: Clean up handling of LPCR power-saving exit bits
authorDavid Gibson <[email protected]>
Thu, 5 Apr 2018 06:27:18 +0000 (16:27 +1000)
committerDavid Gibson <[email protected]>
Fri, 4 May 2018 05:00:37 +0000 (15:00 +1000)
commit47a9b5515475d91cb70791fe55182cf2fead135d
treea4e5128dff8bc22f8257abc7c673edc6f2453781
parentda20aed12a983dcaa6ccef80c0175f438e2780e7
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 <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Tested-by: Cédric Le Goater <[email protected]>
hw/ppc/spapr_cpu_core.c
hw/ppc/spapr_rtas.c
This page took 0.020853 seconds and 4 git commands to generate.