aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/kvm/emulate.c4
-rw-r--r--arch/arm64/kvm/Makefile3
-rw-r--r--virt/kvm/arm/aarch32.c (renamed from arch/arm64/kvm/emulate.c)4
3 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/kvm/emulate.c b/arch/arm/kvm/emulate.c
index af93e3ffc9f3..eda9ddd03e7c 100644
--- a/arch/arm/kvm/emulate.c
+++ b/arch/arm/kvm/emulate.c
@@ -221,9 +221,7 @@ static void kvm_adjust_itstate(struct kvm_vcpu *vcpu)
221 unsigned long cpsr = *vcpu_cpsr(vcpu); 221 unsigned long cpsr = *vcpu_cpsr(vcpu);
222 bool is_arm = !(cpsr & PSR_T_BIT); 222 bool is_arm = !(cpsr & PSR_T_BIT);
223 223
224 BUG_ON(is_arm && (cpsr & PSR_IT_MASK)); 224 if (is_arm || !(cpsr & PSR_IT_MASK))
225
226 if (!(cpsr & PSR_IT_MASK))
227 return; 225 return;
228 226
229 cond = (cpsr & 0xe000) >> 13; 227 cond = (cpsr & 0xe000) >> 13;
diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile
index 695eb3c7ef41..d50a82a16ff6 100644
--- a/arch/arm64/kvm/Makefile
+++ b/arch/arm64/kvm/Makefile
@@ -16,9 +16,10 @@ kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/e
16kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/arm.o $(ARM)/mmu.o $(ARM)/mmio.o 16kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/arm.o $(ARM)/mmu.o $(ARM)/mmio.o
17kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/psci.o $(ARM)/perf.o 17kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/psci.o $(ARM)/perf.o
18 18
19kvm-$(CONFIG_KVM_ARM_HOST) += emulate.o inject_fault.o regmap.o 19kvm-$(CONFIG_KVM_ARM_HOST) += inject_fault.o regmap.o
20kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o 20kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o
21kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o 21kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o
22kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/aarch32.o
22 23
23kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic.o 24kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic.o
24kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-init.o 25kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-init.o
diff --git a/arch/arm64/kvm/emulate.c b/virt/kvm/arm/aarch32.c
index 40098adc6c76..cb02e562acb8 100644
--- a/arch/arm64/kvm/emulate.c
+++ b/virt/kvm/arm/aarch32.c
@@ -109,9 +109,7 @@ static void kvm_adjust_itstate(struct kvm_vcpu *vcpu)
109 unsigned long cpsr = *vcpu_cpsr(vcpu); 109 unsigned long cpsr = *vcpu_cpsr(vcpu);
110 bool is_arm = !(cpsr & COMPAT_PSR_T_BIT); 110 bool is_arm = !(cpsr & COMPAT_PSR_T_BIT);
111 111
112 BUG_ON(is_arm && (cpsr & COMPAT_PSR_IT_MASK)); 112 if (is_arm || !(cpsr & COMPAT_PSR_IT_MASK))
113
114 if (!(cpsr & COMPAT_PSR_IT_MASK))
115 return; 113 return;
116 114
117 cond = (cpsr & 0xe000) >> 13; 115 cond = (cpsr & 0xe000) >> 13;