]> git.karo-electronics.de Git - linux-beck.git/commitdiff
arm64: KVM: Move the AArch32 conditional execution to common code
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 6 Sep 2016 08:28:42 +0000 (09:28 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Thu, 8 Sep 2016 10:53:00 +0000 (12:53 +0200)
It would make some sense to share the conditional execution code
between 32 and 64bit. In order to achieve this, let's move that
code to virt/kvm/arm/aarch32.c. While we're at it, drop a
superfluous BUG_ON() that wasn't that useful.

Following patches will migrate the 32bit port to that code base.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/kvm/emulate.c
arch/arm64/kvm/Makefile
virt/kvm/arm/aarch32.c [moved from arch/arm64/kvm/emulate.c with 97% similarity]

index af93e3ffc9f308d80e8e93b80c4563aec6057628..eda9ddd03e7cde517e95ee1f5b74c7056a862ee3 100644 (file)
@@ -221,9 +221,7 @@ static void kvm_adjust_itstate(struct kvm_vcpu *vcpu)
        unsigned long cpsr = *vcpu_cpsr(vcpu);
        bool is_arm = !(cpsr & PSR_T_BIT);
 
-       BUG_ON(is_arm && (cpsr & PSR_IT_MASK));
-
-       if (!(cpsr & PSR_IT_MASK))
+       if (is_arm || !(cpsr & PSR_IT_MASK))
                return;
 
        cond = (cpsr & 0xe000) >> 13;
index 695eb3c7ef41fa0436caa9e32b911f7268032cd6..d50a82a16ff68cfb5f57808a0f20b08166a75788 100644 (file)
@@ -16,9 +16,10 @@ kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/e
 kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/arm.o $(ARM)/mmu.o $(ARM)/mmio.o
 kvm-$(CONFIG_KVM_ARM_HOST) += $(ARM)/psci.o $(ARM)/perf.o
 
-kvm-$(CONFIG_KVM_ARM_HOST) += emulate.o inject_fault.o regmap.o
+kvm-$(CONFIG_KVM_ARM_HOST) += inject_fault.o regmap.o
 kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o
 kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o
+kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/aarch32.o
 
 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic.o
 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-init.o
similarity index 97%
rename from arch/arm64/kvm/emulate.c
rename to virt/kvm/arm/aarch32.c
index 40098adc6c7698b928c764e1e236a0158c1bf40c..cb02e562acb85ed17a6ac348f5ff4aaf702b3a07 100644 (file)
@@ -109,9 +109,7 @@ static void kvm_adjust_itstate(struct kvm_vcpu *vcpu)
        unsigned long cpsr = *vcpu_cpsr(vcpu);
        bool is_arm = !(cpsr & COMPAT_PSR_T_BIT);
 
-       BUG_ON(is_arm && (cpsr & COMPAT_PSR_IT_MASK));
-
-       if (!(cpsr & COMPAT_PSR_IT_MASK))
+       if (is_arm || !(cpsr & COMPAT_PSR_IT_MASK))
                return;
 
        cond = (cpsr & 0xe000) >> 13;