diff options
author | Christoffer Dall <christoffer.dall@linaro.org> | 2017-03-18 13:56:56 +0100 |
---|---|---|
committer | Christoffer Dall <cdall@linaro.org> | 2017-04-04 14:33:58 +0200 |
commit | 5b0d2cc2805897c14257f6dbb949639c499c3c25 (patch) | |
tree | b9cf3a2d817ef80a8aeface5563e7d256c38daed /arch | |
parent | 8b3405e345b5a098101b0c31b264c812bba045d9 (diff) | |
download | linux-stable-5b0d2cc2805897c14257f6dbb949639c499c3c25.tar.gz linux-stable-5b0d2cc2805897c14257f6dbb949639c499c3c25.tar.bz2 linux-stable-5b0d2cc2805897c14257f6dbb949639c499c3c25.zip |
KVM: arm64: Ensure LRs are clear when they should be
We currently have some code to clear the list registers on GICv3, but we
never call this code, because the caller got nuked when removing the old
vgic. We also used to have a similar GICv2 part, but that got lost in
the process too.
Let's reintroduce the logic for GICv2 and call the logic when we
initialize the use of hypervisors on the CPU, for example when first
loading KVM or when exiting a low power state.
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kvm/arm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index 96dba7cd8be7..314eb6abe1ff 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c @@ -1124,6 +1124,9 @@ static void cpu_hyp_reinit(void) if (__hyp_get_vectors() == hyp_default_vectors) cpu_init_hyp_mode(NULL); } + + if (vgic_present) + kvm_vgic_init_cpu_hardware(); } static void cpu_hyp_reset(void) |