]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.19.31/arm-arm64-kvm-don-t-panic-on-failure-to-properly-res.patch
Linux 4.19.31
[thirdparty/kernel/stable-queue.git] / releases / 4.19.31 / arm-arm64-kvm-don-t-panic-on-failure-to-properly-res.patch
CommitLineData
36e3f504
SL
1From dd5c81225d49e0d638a29d6a70cf772a125bdc81 Mon Sep 17 00:00:00 2001
2From: Marc Zyngier <marc.zyngier@arm.com>
3Date: Thu, 20 Dec 2018 13:07:40 +0000
4Subject: arm/arm64: KVM: Don't panic on failure to properly reset system
5 registers
6
7[ Upstream commit 20589c8cc47dce5854c8bf1b44a9fc63d798d26d ]
8
9Failing to properly reset system registers is pretty bad. But not
10quite as bad as bringing the whole machine down... So warn loudly,
11but slightly more gracefully.
12
13Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
14Acked-by: Christoffer Dall <christoffer.dall@arm.com>
15Signed-off-by: Sasha Levin <sashal@kernel.org>
16---
17 arch/arm/kvm/coproc.c | 4 ++--
18 arch/arm64/kvm/sys_regs.c | 8 +++++---
19 2 files changed, 7 insertions(+), 5 deletions(-)
20
21diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c
22index cb094e55dc5f..fd6cde23bb5d 100644
23--- a/arch/arm/kvm/coproc.c
24+++ b/arch/arm/kvm/coproc.c
25@@ -1450,6 +1450,6 @@ void kvm_reset_coprocs(struct kvm_vcpu *vcpu)
26 reset_coproc_regs(vcpu, table, num);
27
28 for (num = 1; num < NR_CP15_REGS; num++)
29- if (vcpu_cp15(vcpu, num) == 0x42424242)
30- panic("Didn't reset vcpu_cp15(vcpu, %zi)", num);
31+ WARN(vcpu_cp15(vcpu, num) == 0x42424242,
32+ "Didn't reset vcpu_cp15(vcpu, %zi)", num);
33 }
34diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
35index 22fbbdbece3c..fe18e68f9a20 100644
36--- a/arch/arm64/kvm/sys_regs.c
37+++ b/arch/arm64/kvm/sys_regs.c
38@@ -2586,7 +2586,9 @@ void kvm_reset_sys_regs(struct kvm_vcpu *vcpu)
39 table = get_target_table(vcpu->arch.target, true, &num);
40 reset_sys_reg_descs(vcpu, table, num);
41
42- for (num = 1; num < NR_SYS_REGS; num++)
43- if (__vcpu_sys_reg(vcpu, num) == 0x4242424242424242)
44- panic("Didn't reset __vcpu_sys_reg(%zi)", num);
45+ for (num = 1; num < NR_SYS_REGS; num++) {
46+ if (WARN(__vcpu_sys_reg(vcpu, num) == 0x4242424242424242,
47+ "Didn't reset __vcpu_sys_reg(%zi)\n", num))
48+ break;
49+ }
50 }
51--
522.19.1
53