• AKASHI Takahiro's avatar
    arm64: kvm: allows kvm cpu hotplug · 67f69197
    AKASHI Takahiro authored
    The current kvm implementation on arm64 does cpu-specific initialization
    at system boot, and has no way to gracefully shutdown a core in terms of
    kvm. This prevents kexec from rebooting the system at EL2.
    
    This patch adds a cpu tear-down function and also puts an existing cpu-init
    code into a separate function, kvm_arch_hardware_disable() and
    kvm_arch_hardware_enable() respectively.
    We don't need the arm64 specific cpu hotplug hook any more.
    
    Since this patch modifies common code between arm and arm64, one stub
    definition, __cpu_reset_hyp_mode(), is added on arm side to avoid
    compilation errors.
    Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
    [Rebase, added separate VHE init/exit path, changed resets use of
     kvm_call_hyp() to the __version, en/disabled hardware in init_subsystems(),
     added icache maintenance to __kvm_hyp_reset() and removed lr restore, removed
     guest-enter after teardown handling]
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    67f69197
hyp-init.S 4.07 KB