• Lorenzo Pieralisi's avatar
    ARM: 8053/1: kernel: sleep: restore HYP mode configuration in cpu_resume · 0e0779da
    Lorenzo Pieralisi authored
    On CPUs with virtualization extensions the kernel installs HYP mode
    configuration on both primary and secondary cpus upon cold boot.
    
    On platforms where CPUs are shutdown in idle paths (ie CPU core gating),
    when a CPU resumes from low-power states it currently does not execute
    code that reinstalls the HYP configuration, which means that the kernel
    cannot run eg KVM properly on such machines.
    
    This patch, mirroring cold-boot behaviour, executes position independent
    code that reinstalls HYP configuration and drops to SVC mode safely on
    warmboot, so that deep idle states can be enabled in kernel running as
    hosts on platforms with power management HW.
    
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Cc: Dave Martin <dave.martin@arm.com>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Nicolas Pitre <nico@linaro.org>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Reviewed-by: default avatarDave Martin <Dave.Martin@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    0e0779da
sleep.S 4.83 KB