Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752579AbbHEKC6 (ORCPT ); Wed, 5 Aug 2015 06:02:58 -0400 Received: from smtp.citrix.com ([66.165.176.89]:49963 "EHLO SMTP.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750925AbbHEKC4 (ORCPT ); Wed, 5 Aug 2015 06:02:56 -0400 X-IronPort-AV: E=Sophos;i="5.15,615,1432598400"; d="scan'208";a="288224739" Date: Wed, 5 Aug 2015 11:01:32 +0100 From: Stefano Stabellini X-X-Sender: sstabellini@kaball.uk.xensource.com To: Julien Grall CC: , , , , "Konrad Rzeszutek Wilk" , Boris Ostrovsky , David Vrabel Subject: Re: [PATCH v2 5/8] xen/tmem: Use page_to_gfn rather than pfn_to_gfn In-Reply-To: <1438711972-18752-6-git-send-email-julien.grall@citrix.com> Message-ID: References: <1438711972-18752-1-git-send-email-julien.grall@citrix.com> <1438711972-18752-6-git-send-email-julien.grall@citrix.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-DLP: MIA1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3783 Lines: 106 On Tue, 4 Aug 2015, Julien Grall wrote: > All the caller of xen_tmem_{get,put}_page have a struct page * in hand > and call pfn_to_gfn for the only benefits of these 2 functions. > > Rather than passing the pfn in parameter, pass directly the page and use > directly page_to_gfn. > > Signed-off-by: Julien Grall > Cc: Konrad Rzeszutek Wilk > Cc: Boris Ostrovsky > Cc: David Vrabel Reviewed-by: Stefano Stabellini > drivers/xen/tmem.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > > diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c > index 28c97ff..e0c8dc7 100644 > --- a/drivers/xen/tmem.c > +++ b/drivers/xen/tmem.c > @@ -129,21 +129,17 @@ static int xen_tmem_new_pool(struct tmem_pool_uuid uuid, > /* xen generic tmem ops */ > > static int xen_tmem_put_page(u32 pool_id, struct tmem_oid oid, > - u32 index, unsigned long pfn) > + u32 index, struct page *page) > { > - unsigned long gmfn = pfn_to_gfn(pfn); > - > return xen_tmem_op(TMEM_PUT_PAGE, pool_id, oid, index, > - gmfn, 0, 0, 0); > + page_to_gfn(page), 0, 0, 0); > } > > static int xen_tmem_get_page(u32 pool_id, struct tmem_oid oid, > - u32 index, unsigned long pfn) > + u32 index, struct page *page) > { > - unsigned long gmfn = pfn_to_gfn(pfn); > - > return xen_tmem_op(TMEM_GET_PAGE, pool_id, oid, index, > - gmfn, 0, 0, 0); > + page_to_gfn(page), 0, 0, 0); > } > > static int xen_tmem_flush_page(u32 pool_id, struct tmem_oid oid, u32 index) > @@ -173,14 +169,13 @@ static void tmem_cleancache_put_page(int pool, struct cleancache_filekey key, > { > u32 ind = (u32) index; > struct tmem_oid oid = *(struct tmem_oid *)&key; > - unsigned long pfn = page_to_pfn(page); > > if (pool < 0) > return; > if (ind != index) > return; > mb(); /* ensure page is quiescent; tmem may address it with an alias */ > - (void)xen_tmem_put_page((u32)pool, oid, ind, pfn); > + (void)xen_tmem_put_page((u32)pool, oid, ind, page); > } > > static int tmem_cleancache_get_page(int pool, struct cleancache_filekey key, > @@ -287,7 +282,6 @@ static int tmem_frontswap_store(unsigned type, pgoff_t offset, > { > u64 ind64 = (u64)offset; > u32 ind = (u32)offset; > - unsigned long pfn = page_to_pfn(page); > int pool = tmem_frontswap_poolid; > int ret; > > @@ -296,7 +290,7 @@ static int tmem_frontswap_store(unsigned type, pgoff_t offset, > if (ind64 != ind) > return -1; > mb(); /* ensure page is quiescent; tmem may address it with an alias */ > - ret = xen_tmem_put_page(pool, oswiz(type, ind), iswiz(ind), pfn); > + ret = xen_tmem_put_page(pool, oswiz(type, ind), iswiz(ind), page); > /* translate Xen tmem return values to linux semantics */ > if (ret == 1) > return 0; > @@ -313,7 +307,6 @@ static int tmem_frontswap_load(unsigned type, pgoff_t offset, > { > u64 ind64 = (u64)offset; > u32 ind = (u32)offset; > - unsigned long pfn = page_to_pfn(page); > int pool = tmem_frontswap_poolid; > int ret; > > @@ -321,7 +314,7 @@ static int tmem_frontswap_load(unsigned type, pgoff_t offset, > return -1; > if (ind64 != ind) > return -1; > - ret = xen_tmem_get_page(pool, oswiz(type, ind), iswiz(ind), pfn); > + ret = xen_tmem_get_page(pool, oswiz(type, ind), iswiz(ind), page); > /* translate Xen tmem return values to linux semantics */ > if (ret == 1) > return 0; > -- > 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/