summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2017-04-03 19:37:47 +0100
committerChristoffer Dall <cdall@linaro.org>2017-04-09 07:49:24 -0700
commit467f97b72b275ca24a390c2aec383c5f3d91b97a (patch)
tree3bc84168f0c8b973972a88670a421eb87aca6644
parent9da5ac236de6ab2189c999eb9ddddeef1431ab68 (diff)
downloadop-kernel-dev-467f97b72b275ca24a390c2aec383c5f3d91b97a.zip
op-kernel-dev-467f97b72b275ca24a390c2aec383c5f3d91b97a.tar.gz
ARM: KVM: Convert KVM to use HVC_GET_VECTORS
The conversion of the HYP stub ABI to something similar to arm64 left the KVM code broken, as it doesn't know about the new stub numbering. Let's move the various #defines to virt.h, and let KVM use HVC_GET_VECTORS. Tested-by: Keerthy <j-keerthy@ti.com> Acked-by: Russell King <rmk+kernel@armlinux.org.uk> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <cdall@linaro.org>
-rw-r--r--arch/arm/include/asm/virt.h8
-rw-r--r--arch/arm/kernel/hyp-stub.S4
-rw-r--r--arch/arm/kvm/hyp/hyp-entry.S2
3 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/include/asm/virt.h b/arch/arm/include/asm/virt.h
index 6dae195..4ea16fc 100644
--- a/arch/arm/include/asm/virt.h
+++ b/arch/arm/include/asm/virt.h
@@ -94,6 +94,14 @@ extern char __hyp_text_start[];
extern char __hyp_text_end[];
#endif
+#else
+
+/* Only assembly code should need those */
+
+#define HVC_GET_VECTORS 0
+#define HVC_SET_VECTORS 1
+#define HVC_SOFT_RESTART 2
+
#endif /* __ASSEMBLY__ */
#endif /* ! VIRT_H */
diff --git a/arch/arm/kernel/hyp-stub.S b/arch/arm/kernel/hyp-stub.S
index 8291523..8301db9 100644
--- a/arch/arm/kernel/hyp-stub.S
+++ b/arch/arm/kernel/hyp-stub.S
@@ -22,10 +22,6 @@
#include <asm/assembler.h>
#include <asm/virt.h>
-#define HVC_GET_VECTORS 0
-#define HVC_SET_VECTORS 1
-#define HVC_SOFT_RESTART 2
-
#ifndef ZIMAGE
/*
* For the kernel proper, we need to find out the CPU boot mode long after
diff --git a/arch/arm/kvm/hyp/hyp-entry.S b/arch/arm/kvm/hyp/hyp-entry.S
index 96beb53..1f8db7d 100644
--- a/arch/arm/kvm/hyp/hyp-entry.S
+++ b/arch/arm/kvm/hyp/hyp-entry.S
@@ -127,7 +127,7 @@ hyp_hvc:
pop {r0, r1, r2}
/* Check for __hyp_get_vectors */
- cmp r0, #-1
+ cmp r0, #HVC_GET_VECTORS
mrceq p15, 4, r0, c12, c0, 0 @ get HVBAR
beq 1f
OpenPOWER on IntegriCloud