All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.