Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1296360 > unrolled thread

[POC][PATCH 24/83] ppc: keep ->hpt_virt as a pointer

Started byAl Viro <viro@ZenIV.linux.org.uk>
First post2015-12-22 01:10 +0100
Last post2015-12-22 01:10 +0100
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [POC][PATCH 24/83] ppc: keep ->hpt_virt as a pointer Al Viro <viro@ZenIV.linux.org.uk> - 2015-12-22 01:10 +0100

#1296360 — [POC][PATCH 24/83] ppc: keep ->hpt_virt as a pointer

FromAl Viro <viro@ZenIV.linux.org.uk>
Date2015-12-22 01:10 +0100
Subject[POC][PATCH 24/83] ppc: keep ->hpt_virt as a pointer
Message-ID<qIiGD-50N-29@gated-at.bofh.it>
From: Al Viro <viro@zeniv.linux.org.uk>

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 arch/powerpc/include/asm/kvm_host.h |  2 +-
 arch/powerpc/kvm/book3s_64_mmu_hv.c | 19 ++++++++++---------
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index cfa758c..224d71e 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -223,7 +223,7 @@ struct kvm_arch_memory_slot {
 struct kvm_arch {
 	unsigned int lpid;
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
-	unsigned long hpt_virt;
+	void *hpt_virt;
 	struct revmap_entry *revmap;
 	unsigned int host_lpid;
 	unsigned long host_lpcr;
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index e398fdc..3dd6f8e 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -50,7 +50,7 @@ static void kvmppc_rmap_reset(struct kvm *kvm);
 
 long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp)
 {
-	unsigned long hpt = 0;
+	void *hpt = NULL;
 	struct revmap_entry *rev;
 	struct page *page = NULL;
 	long order = KVM_DEFAULT_HPT_ORDER;
@@ -64,16 +64,17 @@ long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp)
 	kvm->arch.hpt_cma_alloc = 0;
 	page = kvm_alloc_hpt(1ul << (order - PAGE_SHIFT));
 	if (page) {
-		hpt = (unsigned long)pfn_to_kaddr(page_to_pfn(page));
-		memset((void *)hpt, 0, (1ul << order));
+		hpt = pfn_to_kaddr(page_to_pfn(page));
+		memset(hpt, 0, (1ul << order));
 		kvm->arch.hpt_cma_alloc = 1;
 	}
 
 	/* Lastly try successively smaller sizes from the page allocator */
 	/* Only do this if userspace didn't specify a size via ioctl */
 	while (!hpt && order > PPC_MIN_HPT_ORDER && !htab_orderp) {
-		hpt = __get_free_pages(GFP_KERNEL|__GFP_ZERO|__GFP_REPEAT|
-				       __GFP_NOWARN, order - PAGE_SHIFT);
+		hpt = (void *)__get_free_pages(GFP_KERNEL|__GFP_ZERO|
+					__GFP_REPEAT| __GFP_NOWARN,
+					order - PAGE_SHIFT);
 		if (!hpt)
 			--order;
 	}
@@ -97,7 +98,7 @@ long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp)
 	kvm->arch.revmap = rev;
 	kvm->arch.sdr1 = __pa(hpt) | (order - 18);
 
-	pr_info("KVM guest htab at %lx (order %ld), LPID %x\n",
+	pr_info("KVM guest htab at %p (order %ld), LPID %x\n",
 		hpt, order, kvm->arch.lpid);
 
 	if (htab_orderp)
@@ -108,7 +109,7 @@ long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp)
 	if (kvm->arch.hpt_cma_alloc)
 		kvm_release_hpt(page, 1 << (order - PAGE_SHIFT));
 	else
-		free_pages((void *)hpt, order - PAGE_SHIFT);
+		free_pages(hpt, order - PAGE_SHIFT);
 	return -ENOMEM;
 }
 
@@ -130,7 +131,7 @@ long kvmppc_alloc_reset_hpt(struct kvm *kvm, u32 *htab_orderp)
 	if (kvm->arch.hpt_virt) {
 		order = kvm->arch.hpt_order;
 		/* Set the entire HPT to 0, i.e. invalid HPTEs */
-		memset((void *)kvm->arch.hpt_virt, 0, 1ul << order);
+		memset(kvm->arch.hpt_virt, 0, 1ul << order);
 		/*
 		 * Reset all the reverse-mapping chains for all memslots
 		 */
@@ -156,7 +157,7 @@ void kvmppc_free_hpt(struct kvm *kvm)
 		kvm_release_hpt(virt_to_page(kvm->arch.hpt_virt),
 				1 << (kvm->arch.hpt_order - PAGE_SHIFT));
 	else
-		free_pages((void *)kvm->arch.hpt_virt,
+		free_pages(kvm->arch.hpt_virt,
 			   kvm->arch.hpt_order - PAGE_SHIFT);
 }
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web