]>
Commit | Line | Data |
---|---|---|
36e3f504 SL |
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 |