* [PATCH 0/3] arm64: KVM: Support 16-bit VMID
@ 2015-11-16 11:28 Vladimir Murzin
2015-11-16 11:28 ` [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER Vladimir Murzin
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Vladimir Murzin @ 2015-11-16 11:28 UTC (permalink / raw)
To: kvmarm; +Cc: marc.zyngier
Hi
This series is supposed to bring support for 16-bit VMID offered by
the ARMv8.1 architecture extension into KVM.
The first to patches are clean-up to make kvm_arm.h fit into assembly
code nicely. The third patch modifies KVM code to recognise and use
16-bit VMID.
Thanks!
Vladimir Murzin (3):
kvm: arm: arm64: remove unreferenced S2_PGD_ORDER
kvm: arm: make kvm_arm.h friendly to assembly code
arm64: KVM: Add support for 16-bit VMID
arch/arm/include/asm/kvm_arm.h | 34 +++++++++++++++++-----------------
arch/arm/include/asm/kvm_mmu.h | 5 +++++
arch/arm/kvm/arm.c | 10 ++++++++--
arch/arm/kvm/mmu.c | 6 +++---
arch/arm64/include/asm/kvm_arm.h | 3 ++-
arch/arm64/include/asm/kvm_mmu.h | 9 ++++++++-
arch/arm64/kvm/hyp-init.S | 9 +++++++++
7 files changed, 52 insertions(+), 24 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER
2015-11-16 11:28 [PATCH 0/3] arm64: KVM: Support 16-bit VMID Vladimir Murzin
@ 2015-11-16 11:28 ` Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-11-16 11:28 ` [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code Vladimir Murzin
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Vladimir Murzin @ 2015-11-16 11:28 UTC (permalink / raw)
To: kvmarm; +Cc: marc.zyngier
Since commit a987370 "arm64: KVM: Fix stage-2 PGD allocation to have
per-page refcounting" there is no reference to S2_PGD_ORDER, so kill it
for the good.
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
arch/arm/include/asm/kvm_arm.h | 1 -
arch/arm/kvm/mmu.c | 6 +++---
arch/arm64/include/asm/kvm_mmu.h | 1 -
3 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch/arm/include/asm/kvm_arm.h b/arch/arm/include/asm/kvm_arm.h
index dc641dd..b05bb5a 100644
--- a/arch/arm/include/asm/kvm_arm.h
+++ b/arch/arm/include/asm/kvm_arm.h
@@ -135,7 +135,6 @@
#define KVM_PHYS_SIZE (1ULL << KVM_PHYS_SHIFT)
#define KVM_PHYS_MASK (KVM_PHYS_SIZE - 1ULL)
#define PTRS_PER_S2_PGD (1ULL << (KVM_PHYS_SHIFT - 30))
-#define S2_PGD_ORDER get_order(PTRS_PER_S2_PGD * sizeof(pgd_t))
/* Virtualization Translation Control Register (VTCR) bits */
#define VTCR_SH0 (3 << 12)
diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
index 6984342..15fbb62 100644
--- a/arch/arm/kvm/mmu.c
+++ b/arch/arm/kvm/mmu.c
@@ -652,9 +652,9 @@ static void *kvm_alloc_hwpgd(void)
* kvm_alloc_stage2_pgd - allocate level-1 table for stage-2 translation.
* @kvm: The KVM struct pointer for the VM.
*
- * Allocates the 1st level table only of size defined by S2_PGD_ORDER (can
- * support either full 40-bit input addresses or limited to 32-bit input
- * addresses). Clears the allocated pages.
+ * Allocates only the stage-2 HW PGD level table(s) (can support either full
+ * 40-bit input addresses or limited to 32-bit input addresses). Clears the
+ * allocated pages.
*
* Note we don't need locking here as this is only called when the VM is
* created, which can only be done once.
diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
index 6150567..54cba80 100644
--- a/arch/arm64/include/asm/kvm_mmu.h
+++ b/arch/arm64/include/asm/kvm_mmu.h
@@ -158,7 +158,6 @@ static inline bool kvm_s2pmd_readonly(pmd_t *pmd)
#define PTRS_PER_S2_PGD_SHIFT (KVM_PHYS_SHIFT - PGDIR_SHIFT)
#endif
#define PTRS_PER_S2_PGD (1 << PTRS_PER_S2_PGD_SHIFT)
-#define S2_PGD_ORDER get_order(PTRS_PER_S2_PGD * sizeof(pgd_t))
#define kvm_pgd_index(addr) (((addr) >> PGDIR_SHIFT) & (PTRS_PER_S2_PGD - 1))
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code
2015-11-16 11:28 [PATCH 0/3] arm64: KVM: Support 16-bit VMID Vladimir Murzin
2015-11-16 11:28 ` [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER Vladimir Murzin
@ 2015-11-16 11:28 ` Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-11-16 11:28 ` [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID Vladimir Murzin
2015-12-07 9:22 ` [PATCH 0/3] arm64: KVM: Support " Vladimir Murzin
3 siblings, 1 reply; 9+ messages in thread
From: Vladimir Murzin @ 2015-11-16 11:28 UTC (permalink / raw)
To: kvmarm; +Cc: marc.zyngier
kvm_arm.h is included from both C code and assembly code; however some
definitions in this header supplied with U/UL/ULL suffixes which might
confuse assembly once they got evaluated.
We have _AC macro for such cases, so just wrap problem places with it.
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
arch/arm/include/asm/kvm_arm.h | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/arch/arm/include/asm/kvm_arm.h b/arch/arm/include/asm/kvm_arm.h
index b05bb5a..01d4d7a 100644
--- a/arch/arm/include/asm/kvm_arm.h
+++ b/arch/arm/include/asm/kvm_arm.h
@@ -19,6 +19,7 @@
#ifndef __ARM_KVM_ARM_H__
#define __ARM_KVM_ARM_H__
+#include <linux/const.h>
#include <linux/types.h>
/* Hyp Configuration Register (HCR) bits */
@@ -132,9 +133,9 @@
* space.
*/
#define KVM_PHYS_SHIFT (40)
-#define KVM_PHYS_SIZE (1ULL << KVM_PHYS_SHIFT)
-#define KVM_PHYS_MASK (KVM_PHYS_SIZE - 1ULL)
-#define PTRS_PER_S2_PGD (1ULL << (KVM_PHYS_SHIFT - 30))
+#define KVM_PHYS_SIZE (_AC(1, ULL) << KVM_PHYS_SHIFT)
+#define KVM_PHYS_MASK (KVM_PHYS_SIZE - _AC(1, ULL))
+#define PTRS_PER_S2_PGD (_AC(1, ULL) << (KVM_PHYS_SHIFT - 30))
/* Virtualization Translation Control Register (VTCR) bits */
#define VTCR_SH0 (3 << 12)
@@ -161,17 +162,17 @@
#define VTTBR_X (5 - KVM_T0SZ)
#endif
#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
-#define VTTBR_BADDR_MASK (((1LLU << (40 - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
-#define VTTBR_VMID_SHIFT (48LLU)
-#define VTTBR_VMID_MASK (0xffLLU << VTTBR_VMID_SHIFT)
+#define VTTBR_BADDR_MASK (((_AC(1, ULL) << (40 - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
+#define VTTBR_VMID_SHIFT _AC(48, ULL)
+#define VTTBR_VMID_MASK (_AC(0xff, ULL) << VTTBR_VMID_SHIFT)
/* Hyp Syndrome Register (HSR) bits */
#define HSR_EC_SHIFT (26)
-#define HSR_EC (0x3fU << HSR_EC_SHIFT)
-#define HSR_IL (1U << 25)
+#define HSR_EC (_AC(0x3f, UL) << HSR_EC_SHIFT)
+#define HSR_IL (_AC(1, UL) << 25)
#define HSR_ISS (HSR_IL - 1)
#define HSR_ISV_SHIFT (24)
-#define HSR_ISV (1U << HSR_ISV_SHIFT)
+#define HSR_ISV (_AC(1, UL) << HSR_ISV_SHIFT)
#define HSR_SRT_SHIFT (16)
#define HSR_SRT_MASK (0xf << HSR_SRT_SHIFT)
#define HSR_FSC (0x3f)
@@ -179,9 +180,9 @@
#define HSR_SSE (1 << 21)
#define HSR_WNR (1 << 6)
#define HSR_CV_SHIFT (24)
-#define HSR_CV (1U << HSR_CV_SHIFT)
+#define HSR_CV (_AC(1, UL) << HSR_CV_SHIFT)
#define HSR_COND_SHIFT (20)
-#define HSR_COND (0xfU << HSR_COND_SHIFT)
+#define HSR_COND (_AC(0xf, UL) << HSR_COND_SHIFT)
#define FSC_FAULT (0x04)
#define FSC_ACCESS (0x08)
@@ -209,13 +210,13 @@
#define HSR_EC_DABT (0x24)
#define HSR_EC_DABT_HYP (0x25)
-#define HSR_WFI_IS_WFE (1U << 0)
+#define HSR_WFI_IS_WFE (_AC(1, UL) << 0)
-#define HSR_HVC_IMM_MASK ((1UL << 16) - 1)
+#define HSR_HVC_IMM_MASK ((_AC(1, UL) << 16) - 1)
-#define HSR_DABT_S1PTW (1U << 7)
-#define HSR_DABT_CM (1U << 8)
-#define HSR_DABT_EA (1U << 9)
+#define HSR_DABT_S1PTW (_AC(1, UL) << 7)
+#define HSR_DABT_CM (_AC(1, UL) << 8)
+#define HSR_DABT_EA (_AC(1, UL) << 9)
#define kvm_arm_exception_type \
{0, "RESET" }, \
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID
2015-11-16 11:28 [PATCH 0/3] arm64: KVM: Support 16-bit VMID Vladimir Murzin
2015-11-16 11:28 ` [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER Vladimir Murzin
2015-11-16 11:28 ` [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code Vladimir Murzin
@ 2015-11-16 11:28 ` Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-12-07 9:22 ` [PATCH 0/3] arm64: KVM: Support " Vladimir Murzin
3 siblings, 1 reply; 9+ messages in thread
From: Vladimir Murzin @ 2015-11-16 11:28 UTC (permalink / raw)
To: kvmarm; +Cc: marc.zyngier
The ARMv8.1 architecture extension allows to choose between 8-bit and
16-bit of VMID, so use this capability for KVM.
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
arch/arm/include/asm/kvm_arm.h | 2 +-
arch/arm/include/asm/kvm_mmu.h | 5 +++++
arch/arm/kvm/arm.c | 10 ++++++++--
arch/arm64/include/asm/kvm_arm.h | 3 ++-
arch/arm64/include/asm/kvm_mmu.h | 8 ++++++++
arch/arm64/kvm/hyp-init.S | 9 +++++++++
6 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/arch/arm/include/asm/kvm_arm.h b/arch/arm/include/asm/kvm_arm.h
index 01d4d7a..e22089f 100644
--- a/arch/arm/include/asm/kvm_arm.h
+++ b/arch/arm/include/asm/kvm_arm.h
@@ -164,7 +164,7 @@
#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
#define VTTBR_BADDR_MASK (((_AC(1, ULL) << (40 - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
#define VTTBR_VMID_SHIFT _AC(48, ULL)
-#define VTTBR_VMID_MASK (_AC(0xff, ULL) << VTTBR_VMID_SHIFT)
+#define VTTBR_VMID_MASK(size) (_AT(u64, (1 << size) - 1) << VTTBR_VMID_SHIFT)
/* Hyp Syndrome Register (HSR) bits */
#define HSR_EC_SHIFT (26)
diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
index 405aa18..9203c21 100644
--- a/arch/arm/include/asm/kvm_mmu.h
+++ b/arch/arm/include/asm/kvm_mmu.h
@@ -279,6 +279,11 @@ static inline void __kvm_extend_hypmap(pgd_t *boot_hyp_pgd,
pgd_t *merged_hyp_pgd,
unsigned long hyp_idmap_start) { }
+static inline unsigned int kvm_get_vmid_bits(void)
+{
+ return 8;
+}
+
#endif /* !__ASSEMBLY__ */
#endif /* __ARM_KVM_MMU_H__ */
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
index eab83b2..055980d 100644
--- a/arch/arm/kvm/arm.c
+++ b/arch/arm/kvm/arm.c
@@ -58,7 +58,8 @@ static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
/* The VMID used in the VTTBR */
static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
-static u8 kvm_next_vmid;
+static u32 kvm_next_vmid;
+static unsigned int kvm_vmid_bits __read_mostly;
static DEFINE_SPINLOCK(kvm_vmid_lock);
static void kvm_arm_set_running_vcpu(struct kvm_vcpu *vcpu)
@@ -433,11 +434,12 @@ static void update_vttbr(struct kvm *kvm)
kvm->arch.vmid_gen = atomic64_read(&kvm_vmid_gen);
kvm->arch.vmid = kvm_next_vmid;
kvm_next_vmid++;
+ kvm_next_vmid &= (1 << kvm_vmid_bits) - 1;
/* update vttbr to be used with the new vmid */
pgd_phys = virt_to_phys(kvm_get_hwpgd(kvm));
BUG_ON(pgd_phys & ~VTTBR_BADDR_MASK);
- vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK;
+ vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK(kvm_vmid_bits);
kvm->arch.vttbr = pgd_phys | vmid;
spin_unlock(&kvm_vmid_lock);
@@ -1132,6 +1134,10 @@ static int init_hyp_mode(void)
kvm_perf_init();
+ /* set size of VMID supported by CPU */
+ kvm_vmid_bits = kvm_get_vmid_bits();
+ kvm_info("%d-bit VMID\n", kvm_vmid_bits);
+
kvm_info("Hyp mode initialized successfully\n");
return 0;
diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h
index 5e6857b..738a95f 100644
--- a/arch/arm64/include/asm/kvm_arm.h
+++ b/arch/arm64/include/asm/kvm_arm.h
@@ -125,6 +125,7 @@
#define VTCR_EL2_SL0_LVL1 (1 << 6)
#define VTCR_EL2_T0SZ_MASK 0x3f
#define VTCR_EL2_T0SZ_40B 24
+#define VTCR_EL2_VS 19
/*
* We configure the Stage-2 page tables to always restrict the IPA space to be
@@ -169,7 +170,7 @@
#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
#define VTTBR_BADDR_MASK (((UL(1) << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
#define VTTBR_VMID_SHIFT (UL(48))
-#define VTTBR_VMID_MASK (UL(0xFF) << VTTBR_VMID_SHIFT)
+#define VTTBR_VMID_MASK(size) (_AT(u64, (1 << size) - 1) << VTTBR_VMID_SHIFT)
/* Hyp System Trap Register */
#define HSTR_EL2_T(x) (1 << x)
diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
index 54cba80..0bf8b43 100644
--- a/arch/arm64/include/asm/kvm_mmu.h
+++ b/arch/arm64/include/asm/kvm_mmu.h
@@ -20,6 +20,7 @@
#include <asm/page.h>
#include <asm/memory.h>
+#include <asm/cpufeature.h>
/*
* As we only have the TTBR0_EL2 register, we cannot express
@@ -301,5 +302,12 @@ static inline void __kvm_extend_hypmap(pgd_t *boot_hyp_pgd,
merged_hyp_pgd[idmap_idx] = __pgd(__pa(boot_hyp_pgd) | PMD_TYPE_TABLE);
}
+static inline unsigned int kvm_get_vmid_bits(void)
+{
+ int reg = read_system_reg(SYS_ID_AA64MMFR1_EL1);
+
+ return (cpuid_feature_extract_field(reg, ID_AA64MMFR1_VMIDBITS_SHIFT) == 2) ? 16 : 8;
+}
+
#endif /* __ASSEMBLY__ */
#endif /* __ARM64_KVM_MMU_H__ */
diff --git a/arch/arm64/kvm/hyp-init.S b/arch/arm64/kvm/hyp-init.S
index 178ba22..3e568dc 100644
--- a/arch/arm64/kvm/hyp-init.S
+++ b/arch/arm64/kvm/hyp-init.S
@@ -94,6 +94,15 @@ __do_hyp_init:
*/
mrs x5, ID_AA64MMFR0_EL1
bfi x4, x5, #16, #3
+ /*
+ * Read the VMIDBits bits from ID_AA64MMFR1_EL1 and set the VS bit in
+ * VTCR_EL2.
+ */
+ mrs x5, ID_AA64MMFR1_EL1
+ ubfx x5, x5, #5, #1
+ lsl x5, x5, #VTCR_EL2_VS
+ orr x4, x4, x5
+
msr vtcr_el2, x4
mrs x4, mair_el1
--
1.7.9.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] arm64: KVM: Support 16-bit VMID
2015-11-16 11:28 [PATCH 0/3] arm64: KVM: Support 16-bit VMID Vladimir Murzin
` (2 preceding siblings ...)
2015-11-16 11:28 ` [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID Vladimir Murzin
@ 2015-12-07 9:22 ` Vladimir Murzin
2015-12-07 9:27 ` Marc Zyngier
3 siblings, 1 reply; 9+ messages in thread
From: Vladimir Murzin @ 2015-12-07 9:22 UTC (permalink / raw)
To: kvmarm; +Cc: marc.zyngier
Gentle ping...
On 16/11/15 11:28, Vladimir Murzin wrote:
> Hi
>
> This series is supposed to bring support for 16-bit VMID offered by
> the ARMv8.1 architecture extension into KVM.
>
> The first to patches are clean-up to make kvm_arm.h fit into assembly
> code nicely. The third patch modifies KVM code to recognise and use
> 16-bit VMID.
>
> Thanks!
>
> Vladimir Murzin (3):
> kvm: arm: arm64: remove unreferenced S2_PGD_ORDER
> kvm: arm: make kvm_arm.h friendly to assembly code
> arm64: KVM: Add support for 16-bit VMID
>
> arch/arm/include/asm/kvm_arm.h | 34 +++++++++++++++++-----------------
> arch/arm/include/asm/kvm_mmu.h | 5 +++++
> arch/arm/kvm/arm.c | 10 ++++++++--
> arch/arm/kvm/mmu.c | 6 +++---
> arch/arm64/include/asm/kvm_arm.h | 3 ++-
> arch/arm64/include/asm/kvm_mmu.h | 9 ++++++++-
> arch/arm64/kvm/hyp-init.S | 9 +++++++++
> 7 files changed, 52 insertions(+), 24 deletions(-)
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] arm64: KVM: Support 16-bit VMID
2015-12-07 9:22 ` [PATCH 0/3] arm64: KVM: Support " Vladimir Murzin
@ 2015-12-07 9:27 ` Marc Zyngier
0 siblings, 0 replies; 9+ messages in thread
From: Marc Zyngier @ 2015-12-07 9:27 UTC (permalink / raw)
To: Vladimir Murzin, kvmarm
On 07/12/15 09:22, Vladimir Murzin wrote:
> Gentle ping...
Yup, on my list for 4.5. I haven't forgotten it, just a tiny bit busy...
Thanks,
M.
--
Jazz is not dead. It just smells funny...
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID
2015-11-16 11:28 ` [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID Vladimir Murzin
@ 2015-12-16 20:30 ` Christoffer Dall
0 siblings, 0 replies; 9+ messages in thread
From: Christoffer Dall @ 2015-12-16 20:30 UTC (permalink / raw)
To: Vladimir Murzin; +Cc: marc.zyngier, kvmarm
On Mon, Nov 16, 2015 at 11:28:18AM +0000, Vladimir Murzin wrote:
> The ARMv8.1 architecture extension allows to choose between 8-bit and
> 16-bit of VMID, so use this capability for KVM.
>
> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER
2015-11-16 11:28 ` [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER Vladimir Murzin
@ 2015-12-16 20:30 ` Christoffer Dall
0 siblings, 0 replies; 9+ messages in thread
From: Christoffer Dall @ 2015-12-16 20:30 UTC (permalink / raw)
To: Vladimir Murzin; +Cc: marc.zyngier, kvmarm
On Mon, Nov 16, 2015 at 11:28:16AM +0000, Vladimir Murzin wrote:
> Since commit a987370 "arm64: KVM: Fix stage-2 PGD allocation to have
> per-page refcounting" there is no reference to S2_PGD_ORDER, so kill it
> for the good.
>
> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code
2015-11-16 11:28 ` [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code Vladimir Murzin
@ 2015-12-16 20:30 ` Christoffer Dall
0 siblings, 0 replies; 9+ messages in thread
From: Christoffer Dall @ 2015-12-16 20:30 UTC (permalink / raw)
To: Vladimir Murzin; +Cc: marc.zyngier, kvmarm
On Mon, Nov 16, 2015 at 11:28:17AM +0000, Vladimir Murzin wrote:
> kvm_arm.h is included from both C code and assembly code; however some
> definitions in this header supplied with U/UL/ULL suffixes which might
> confuse assembly once they got evaluated.
> We have _AC macro for such cases, so just wrap problem places with it.
>
> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-12-16 20:28 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-16 11:28 [PATCH 0/3] arm64: KVM: Support 16-bit VMID Vladimir Murzin
2015-11-16 11:28 ` [PATCH 1/3] kvm: arm: arm64: remove unreferenced S2_PGD_ORDER Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-11-16 11:28 ` [PATCH 2/3] kvm: arm: make kvm_arm.h friendly to assembly code Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-11-16 11:28 ` [PATCH 3/3] arm64: KVM: Add support for 16-bit VMID Vladimir Murzin
2015-12-16 20:30 ` Christoffer Dall
2015-12-07 9:22 ` [PATCH 0/3] arm64: KVM: Support " Vladimir Murzin
2015-12-07 9:27 ` Marc Zyngier
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.