From patchwork Wed Dec 11 08:47:53 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pingfan Liu X-Patchwork-Id: 299879 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3BF6C2C0380 for ; Wed, 11 Dec 2013 19:47:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750829Ab3LKIrL (ORCPT ); Wed, 11 Dec 2013 03:47:11 -0500 Received: from mail-oa0-f51.google.com ([209.85.219.51]:47878 "EHLO mail-oa0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750779Ab3LKIrL (ORCPT ); Wed, 11 Dec 2013 03:47:11 -0500 Received: by mail-oa0-f51.google.com with SMTP id i7so6958720oag.10 for ; Wed, 11 Dec 2013 00:47:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=mFFtVfTEUPoKSxHN2lO4PlOA8FS6qslHd9UCQFEgcvI=; b=M8pEECN4EnZp+rZh451xd1KBlW35LPTM0viP3kGfWEOExdr04gFCADIFBdgRqQlxF1 RgEdsVPO8qEiX0LMYqE9JLhd8kdK4RvbYc1dTm7orevVPP/WSUTdpaTp5bAjqogV6snD UN5CskytH69u0dYBJBvQCaoAGepDR1BV9m0igkHzGpfOuauBRQYAzD3JTOYC/hR9OaJ+ nC5Or7X7P6StLWwu8+YAE8Kvzccesln+Zn8SDyDFGpuBULPGdgVq6/POsVP0zvrKBEWk USUFx/IjrgKdl5JcKPKntAiaRGuHbKDvFVmfYrr3xdOzh2OwpPIzUprvL9vIyM4wH6+L VdKQ== X-Received: by 10.60.174.167 with SMTP id bt7mr213807oec.54.1386751630847; Wed, 11 Dec 2013 00:47:10 -0800 (PST) Received: from localhost ([202.108.130.138]) by mx.google.com with ESMTPSA id qe2sm27459740obc.1.2013.12.11.00.47.09 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 11 Dec 2013 00:47:10 -0800 (PST) From: Liu Ping Fan To: linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org Cc: "Aneesh Kumar K.V" , Benjamin Herrenschmidt , Paul Mackerras , Alexander Graf Subject: [PATCH 3/4] powernv: kvm: extend input param for lookup_linux_pte Date: Wed, 11 Dec 2013 16:47:53 +0800 Message-Id: <1386751674-14136-4-git-send-email-pingfank@linux.vnet.ibm.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1386751674-14136-1-git-send-email-pingfank@linux.vnet.ibm.com> References: <1386751674-14136-1-git-send-email-pingfank@linux.vnet.ibm.com> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org It will be helpful for next patch Signed-off-by: Liu Ping Fan --- Can it be merged with the next patch? --- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv_rm_mmu.c b/arch/powerpc/kvm/book3s_hv_rm_mmu.c index af8602d..ae46052 100644 --- a/arch/powerpc/kvm/book3s_hv_rm_mmu.c +++ b/arch/powerpc/kvm/book3s_hv_rm_mmu.c @@ -135,7 +135,8 @@ static void remove_revmap_chain(struct kvm *kvm, long pte_index, } static pte_t lookup_linux_pte(pgd_t *pgdir, unsigned long hva, - int writing, unsigned long *pte_sizep) + int writing, unsigned long *pte_sizep, + pte_t **ptepp) { pte_t *ptep; unsigned long ps = *pte_sizep; @@ -144,6 +145,8 @@ static pte_t lookup_linux_pte(pgd_t *pgdir, unsigned long hva, ptep = find_linux_pte_or_hugepte(pgdir, hva, &hugepage_shift); if (!ptep) return __pte(0); + if (ptepp != NULL) + *ptepp = ptep; if (hugepage_shift) *pte_sizep = 1ul << hugepage_shift; else @@ -231,7 +234,7 @@ long kvmppc_do_h_enter(struct kvm *kvm, unsigned long flags, /* Look up the Linux PTE for the backing page */ pte_size = psize; - pte = lookup_linux_pte(pgdir, hva, writing, &pte_size); + pte = lookup_linux_pte(pgdir, hva, writing, &pte_size, NULL); if (pte_present(pte) && !pte_numa(pte)) { if (writing && !pte_write(pte)) /* make the actual HPTE be read-only */ @@ -671,7 +674,8 @@ long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags, memslot = __gfn_to_memslot(kvm_memslots(kvm), gfn); if (memslot) { hva = __gfn_to_hva_memslot(memslot, gfn); - pte = lookup_linux_pte(pgdir, hva, 1, &psize); + pte = lookup_linux_pte(pgdir, hva, 1, &psize, + NULL); if (pte_present(pte) && !pte_write(pte)) r = hpte_make_readonly(r); }