]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - 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
1 From dd5c81225d49e0d638a29d6a70cf772a125bdc81 Mon Sep 17 00:00:00 2001
2 From: Marc Zyngier <marc.zyngier@arm.com>
3 Date: Thu, 20 Dec 2018 13:07:40 +0000
4 Subject: arm/arm64: KVM: Don't panic on failure to properly reset system
5 registers
6
7 [ Upstream commit 20589c8cc47dce5854c8bf1b44a9fc63d798d26d ]
8
9 Failing to properly reset system registers is pretty bad. But not
10 quite as bad as bringing the whole machine down... So warn loudly,
11 but slightly more gracefully.
12
13 Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
14 Acked-by: Christoffer Dall <christoffer.dall@arm.com>
15 Signed-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
21 diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c
22 index 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 }
34 diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
35 index 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 --
52 2.19.1
53