From: Julien Grall <julien.grall@arm.com> To: xen-devel@lists.xenproject.org Cc: Julien Grall <julien.grall@arm.com>, Stefano Stabellini <sstabellini@kernel.org> Subject: [PATCH 01/14] xen/arm: Use mfn_to_pdx instead of pfn_to_pdx when possible Date: Tue, 7 May 2019 16:14:45 +0100 [thread overview] Message-ID: <20190507151458.29350-2-julien.grall@arm.com> (raw) In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> mfn_to_pdx adds more safety than pfn_to_pdx. Replace all but on place in the Arm code to use the former. No functional changes. Signed-off-by: Julien Grall <julien.grall@arm.com> --- There are still one use of pfn_to_pdx in the Arm code (see mfn_valid). Ideally we would want to switch __mfn_valid(...) to be typesafe but it looks like it does not compile on x86. For the details see: <02478ff8-d1e2-abe1-74a5-ca72ab87f154@arm.com> This is unlikely going to be handled in this series. --- xen/arch/arm/mm.c | 2 +- xen/include/asm-arm/mm.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 01ae2cccc0..be5338bb4c 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -886,7 +886,7 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe) int i; #endif - frametable_base_pdx = pfn_to_pdx(ps >> PAGE_SHIFT); + frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps)); /* Round up to 2M or 32M boundary, as appropriate. */ frametable_size = ROUNDUP(frametable_size, mapping_size); base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12)); diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h index eafa26f56e..7b6aaf5e3f 100644 --- a/xen/include/asm-arm/mm.h +++ b/xen/include/asm-arm/mm.h @@ -225,7 +225,7 @@ static inline void __iomem *ioremap_wc(paddr_t start, size_t len) /* Convert between frame number and address formats. */ #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT) #define paddr_to_pfn(pa) ((unsigned long)((pa) >> PAGE_SHIFT)) -#define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa)) +#define paddr_to_pdx(pa) mfn_to_pdx(maddr_to_mfn(pa)) #define gfn_to_gaddr(gfn) pfn_to_paddr(gfn_x(gfn)) #define gaddr_to_gfn(ga) _gfn(paddr_to_pfn(ga)) #define mfn_to_maddr(mfn) pfn_to_paddr(mfn_x(mfn)) @@ -253,7 +253,7 @@ static inline void *maddr_to_virt(paddr_t ma) #else static inline void *maddr_to_virt(paddr_t ma) { - ASSERT(pfn_to_pdx(ma >> PAGE_SHIFT) < (DIRECTMAP_SIZE >> PAGE_SHIFT)); + ASSERT(mfn_to_pdx(maddr_to_mfn(ma)) < (DIRECTMAP_SIZE >> PAGE_SHIFT)); return (void *)(XENHEAP_VIRT_START - mfn_to_maddr(xenheap_mfn_start) + ((ma & ma_va_bottom_mask) | @@ -301,7 +301,7 @@ static inline struct page_info *virt_to_page(const void *v) ASSERT(va < xenheap_virt_end); pdx = (va - XENHEAP_VIRT_START) >> PAGE_SHIFT; - pdx += pfn_to_pdx(mfn_x(xenheap_mfn_start)); + pdx += mfn_to_pdx(xenheap_mfn_start); return frame_table + pdx - frametable_base_pdx; } -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
WARNING: multiple messages have this Message-ID (diff)
From: Julien Grall <julien.grall@arm.com> To: xen-devel@lists.xenproject.org Cc: Julien Grall <julien.grall@arm.com>, Stefano Stabellini <sstabellini@kernel.org> Subject: [Xen-devel] [PATCH 01/14] xen/arm: Use mfn_to_pdx instead of pfn_to_pdx when possible Date: Tue, 7 May 2019 16:14:45 +0100 [thread overview] Message-ID: <20190507151458.29350-2-julien.grall@arm.com> (raw) Message-ID: <20190507151445.QbhaIxpo3OrpNPo8ia8JOPq5d9tqblYJKv5_0S8H0JQ@z> (raw) In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> mfn_to_pdx adds more safety than pfn_to_pdx. Replace all but on place in the Arm code to use the former. No functional changes. Signed-off-by: Julien Grall <julien.grall@arm.com> --- There are still one use of pfn_to_pdx in the Arm code (see mfn_valid). Ideally we would want to switch __mfn_valid(...) to be typesafe but it looks like it does not compile on x86. For the details see: <02478ff8-d1e2-abe1-74a5-ca72ab87f154@arm.com> This is unlikely going to be handled in this series. --- xen/arch/arm/mm.c | 2 +- xen/include/asm-arm/mm.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 01ae2cccc0..be5338bb4c 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -886,7 +886,7 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe) int i; #endif - frametable_base_pdx = pfn_to_pdx(ps >> PAGE_SHIFT); + frametable_base_pdx = mfn_to_pdx(maddr_to_mfn(ps)); /* Round up to 2M or 32M boundary, as appropriate. */ frametable_size = ROUNDUP(frametable_size, mapping_size); base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12)); diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h index eafa26f56e..7b6aaf5e3f 100644 --- a/xen/include/asm-arm/mm.h +++ b/xen/include/asm-arm/mm.h @@ -225,7 +225,7 @@ static inline void __iomem *ioremap_wc(paddr_t start, size_t len) /* Convert between frame number and address formats. */ #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT) #define paddr_to_pfn(pa) ((unsigned long)((pa) >> PAGE_SHIFT)) -#define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa)) +#define paddr_to_pdx(pa) mfn_to_pdx(maddr_to_mfn(pa)) #define gfn_to_gaddr(gfn) pfn_to_paddr(gfn_x(gfn)) #define gaddr_to_gfn(ga) _gfn(paddr_to_pfn(ga)) #define mfn_to_maddr(mfn) pfn_to_paddr(mfn_x(mfn)) @@ -253,7 +253,7 @@ static inline void *maddr_to_virt(paddr_t ma) #else static inline void *maddr_to_virt(paddr_t ma) { - ASSERT(pfn_to_pdx(ma >> PAGE_SHIFT) < (DIRECTMAP_SIZE >> PAGE_SHIFT)); + ASSERT(mfn_to_pdx(maddr_to_mfn(ma)) < (DIRECTMAP_SIZE >> PAGE_SHIFT)); return (void *)(XENHEAP_VIRT_START - mfn_to_maddr(xenheap_mfn_start) + ((ma & ma_va_bottom_mask) | @@ -301,7 +301,7 @@ static inline struct page_info *virt_to_page(const void *v) ASSERT(va < xenheap_virt_end); pdx = (va - XENHEAP_VIRT_START) >> PAGE_SHIFT; - pdx += pfn_to_pdx(mfn_x(xenheap_mfn_start)); + pdx += mfn_to_pdx(xenheap_mfn_start); return frame_table + pdx - frametable_base_pdx; } -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-05-07 15:15 UTC|newest] Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-07 15:14 [PATCH 00/14] xen/arm: Properly disable M2P on Arm Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` Julien Grall [this message] 2019-05-07 15:14 ` [Xen-devel] [PATCH 01/14] xen/arm: Use mfn_to_pdx instead of pfn_to_pdx when possible Julien Grall 2019-05-09 17:50 ` Stefano Stabellini 2019-05-09 17:50 ` [Xen-devel] " Stefano Stabellini 2019-05-07 15:14 ` [PATCH 02/14] xen/x86: Constify the parameter "d" in mfn_to_gfn Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 03/14] xen/x86: Make mfn_to_gfn typesafe Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-10 11:35 ` Jan Beulich 2019-05-10 11:35 ` [Xen-devel] " Jan Beulich 2019-05-10 13:02 ` Julien Grall 2019-05-10 13:02 ` [Xen-devel] " Julien Grall 2019-05-10 13:24 ` Jan Beulich 2019-05-10 13:24 ` [Xen-devel] " Jan Beulich 2019-05-10 13:25 ` Julien Grall 2019-05-10 13:25 ` [Xen-devel] " Julien Grall 2019-05-20 15:13 ` Julien Grall 2019-05-20 15:13 ` [Xen-devel] " Julien Grall 2019-05-28 17:29 ` George Dunlap 2019-05-28 17:29 ` [Xen-devel] " George Dunlap 2019-05-29 11:39 ` Julien Grall 2019-05-29 11:39 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 04/14] xen/x86: Use mfn_to_gfn rather than mfn_to_gmfn Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-10 12:15 ` Jan Beulich 2019-05-10 12:15 ` [Xen-devel] " Jan Beulich 2019-05-10 13:07 ` Julien Grall 2019-05-10 13:07 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 05/14] xen/grant-table: Make arch specific macros typesafe Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-09 17:54 ` Stefano Stabellini 2019-05-09 17:54 ` [Xen-devel] " Stefano Stabellini 2019-05-07 15:14 ` [PATCH 06/14] xen: Convert hotplug page function to use typesafe MFN Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-09 18:01 ` Stefano Stabellini 2019-05-09 18:01 ` [Xen-devel] " Stefano Stabellini 2019-05-09 18:10 ` Julien Grall 2019-05-09 18:10 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 07/14] xen: Convert is_xen_fixed_mfn " Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-24 15:16 ` George Dunlap 2019-05-24 15:16 ` [Xen-devel] " George Dunlap 2019-05-07 15:14 ` [PATCH 08/14] xen: Convert is_xen_heap_mfn " Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-24 15:15 ` George Dunlap 2019-05-24 15:15 ` [Xen-devel] " George Dunlap 2019-05-07 15:14 ` [PATCH 09/14] xen: Introduce HAS_M2P config and use to protect mfn_to_gmfn call Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-09 18:06 ` Stefano Stabellini 2019-05-09 18:06 ` [Xen-devel] " Stefano Stabellini 2019-05-09 18:12 ` Julien Grall 2019-05-09 18:12 ` [Xen-devel] " Julien Grall 2019-05-09 18:16 ` Stefano Stabellini 2019-05-09 18:16 ` [Xen-devel] " Stefano Stabellini 2019-05-09 18:29 ` Julien Grall 2019-05-09 18:29 ` [Xen-devel] " Julien Grall 2019-05-09 19:49 ` Stefano Stabellini 2019-05-09 19:49 ` [Xen-devel] " Stefano Stabellini 2019-05-10 12:31 ` Jan Beulich 2019-05-10 12:31 ` [Xen-devel] " Jan Beulich 2019-05-10 13:22 ` Julien Grall 2019-05-10 13:22 ` [Xen-devel] " Julien Grall 2019-05-10 13:32 ` Jan Beulich 2019-05-10 13:32 ` [Xen-devel] " Jan Beulich 2019-05-10 13:41 ` Julien Grall 2019-05-10 13:41 ` [Xen-devel] " Julien Grall 2019-05-10 13:45 ` Jan Beulich 2019-05-10 13:45 ` [Xen-devel] " Jan Beulich 2019-05-10 14:04 ` Julien Grall 2019-05-10 14:04 ` [Xen-devel] " Julien Grall 2019-05-10 14:19 ` Jan Beulich 2019-05-10 14:19 ` [Xen-devel] " Jan Beulich 2019-05-10 14:34 ` Julien Grall 2019-05-10 14:34 ` [Xen-devel] " Julien Grall 2019-05-22 16:03 ` Julien Grall 2019-05-22 16:03 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 10/14] xen: Remove mfn_to_gmfn macro Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 11/14] xen/x86: mm: Re-implement set_gpfn_from_mfn() as a static inline function Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-10 12:43 ` Jan Beulich 2019-05-10 12:43 ` [Xen-devel] " Jan Beulich 2019-05-10 13:27 ` Julien Grall 2019-05-10 13:27 ` [Xen-devel] " Julien Grall 2019-05-10 13:35 ` Jan Beulich 2019-05-10 13:35 ` [Xen-devel] " Jan Beulich 2019-05-10 13:41 ` Julien Grall 2019-05-10 13:41 ` [Xen-devel] " Julien Grall 2019-05-10 13:48 ` Jan Beulich 2019-05-10 13:48 ` [Xen-devel] " Jan Beulich 2019-05-10 14:05 ` Julien Grall 2019-05-10 14:05 ` [Xen-devel] " Julien Grall 2019-05-10 14:21 ` Jan Beulich 2019-05-10 14:21 ` [Xen-devel] " Jan Beulich 2019-05-10 14:48 ` Julien Grall 2019-05-10 14:48 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 12/14] xen/x86: pv: Convert update_intpte() to use typesafe MFN Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-10 12:54 ` Jan Beulich 2019-05-10 12:54 ` [Xen-devel] " Jan Beulich 2019-05-10 13:28 ` Julien Grall 2019-05-10 13:28 ` [Xen-devel] " Julien Grall 2019-05-07 15:14 ` [PATCH 13/14] xen/mm: Convert {s, g}et_gpfn_from_mfn() " Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-07 20:27 ` Tamas K Lengyel 2019-05-07 20:27 ` [Xen-devel] " Tamas K Lengyel 2019-05-09 18:19 ` Stefano Stabellini 2019-05-09 18:19 ` [Xen-devel] " Stefano Stabellini 2019-05-10 13:21 ` Jan Beulich 2019-05-10 13:21 ` [Xen-devel] " Jan Beulich 2019-05-10 13:27 ` Andrew Cooper 2019-05-10 13:27 ` [Xen-devel] " Andrew Cooper 2019-05-10 13:34 ` Julien Grall 2019-05-10 13:34 ` [Xen-devel] " Julien Grall 2019-05-10 13:41 ` Jan Beulich 2019-05-10 13:41 ` [Xen-devel] " Jan Beulich 2019-05-10 13:46 ` Julien Grall 2019-05-10 13:46 ` [Xen-devel] " Julien Grall 2019-05-10 14:02 ` Jan Beulich 2019-05-10 14:02 ` [Xen-devel] " Jan Beulich 2019-05-10 14:05 ` Andrew Cooper 2019-05-10 14:05 ` [Xen-devel] " Andrew Cooper 2019-05-10 14:08 ` Julien Grall 2019-05-10 14:08 ` [Xen-devel] " Julien Grall 2019-05-10 14:09 ` Andrew Cooper 2019-05-10 14:09 ` [Xen-devel] " Andrew Cooper 2019-05-10 14:14 ` Jan Beulich 2019-05-10 14:14 ` [Xen-devel] " Jan Beulich 2019-05-10 14:27 ` Andrew Cooper 2019-05-10 14:27 ` [Xen-devel] " Andrew Cooper 2019-05-24 16:24 ` George Dunlap 2019-05-24 16:24 ` [Xen-devel] " George Dunlap 2019-05-29 16:27 ` Julien Grall 2019-05-29 16:27 ` [Xen-devel] " Julien Grall 2019-05-29 16:29 ` George Dunlap 2019-05-29 16:29 ` [Xen-devel] " George Dunlap 2019-05-24 16:35 ` George Dunlap 2019-05-24 16:35 ` [Xen-devel] " George Dunlap 2019-05-07 15:14 ` [PATCH 14/14] xen/mm: Provide dummy M2P-related helpers when !CONFIG_HAVE_M2P Julien Grall 2019-05-07 15:14 ` [Xen-devel] " Julien Grall 2019-05-09 18:20 ` Stefano Stabellini 2019-05-09 18:20 ` [Xen-devel] " Stefano Stabellini 2019-05-10 13:28 ` Jan Beulich 2019-05-10 13:28 ` [Xen-devel] " Jan Beulich 2019-05-10 13:29 ` Julien Grall 2019-05-10 13:29 ` [Xen-devel] " Julien Grall 2019-05-10 13:37 ` Jan Beulich 2019-05-10 13:37 ` [Xen-devel] " Jan Beulich 2019-05-10 13:38 ` Julien Grall 2019-05-10 13:38 ` [Xen-devel] " Julien Grall 2019-05-24 16:51 ` George Dunlap 2019-05-24 16:51 ` [Xen-devel] " George Dunlap
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190507151458.29350-2-julien.grall@arm.com \ --to=julien.grall@arm.com \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.