Commit 346ebfc6 authored by Cédric Le Goater's avatar Cédric Le Goater Committed by David Gibson
Browse files

target/ppc: fix CPU hotplug when radix is enabled (TCG)



But when a guest initializes radix mode, it issues a H_REGISTER_PROC_TBL
to update the LPCR of all CPUs. Hot-plugged CPUs inherit from the same
setting under KVM but not under TCG. So, Let's check for radix and update
the default LPCR to keep new CPUs in sync.

Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent df8658de
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -9011,8 +9011,16 @@ void cpu_ppc_set_papr(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp)
        /* By default we choose legacy mode and switch to new hash or radix
         * when a register process table hcall is made. So disable process
         * tables and guest translation shootdown by default
         *
         * Hot-plugged CPUs inherit from the guest radix setting under
         * KVM but not under TCG. Update the default LPCR to keep new
         * CPUs in sync when radix is enabled.
         */
        if (ppc64_radix_guest(cpu)) {
            lpcr->default_value |= LPCR_UPRT | LPCR_GTSE;
        } else {
            lpcr->default_value &= ~(LPCR_UPRT | LPCR_GTSE);
        }
        lpcr->default_value |= LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE |
                               LPCR_OEE;
        break;