From: Julien Grall <julien.grall@arm.com> To: xen-devel@lists.xenproject.org Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien.grall@arm.com>, "Wei Liu" <wei.liu2@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [PATCH 04/14] xen/x86: Use mfn_to_gfn rather than mfn_to_gmfn Date: Tue, 7 May 2019 16:14:48 +0100 [thread overview] Message-ID: <20190507151458.29350-5-julien.grall@arm.com> (raw) In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> mfn_to_gfn and mfn_to_gmfn are doing exactly the same except the former is using mfn_t. Furthermore, the naming of the former is more consistent with the current naming scheme (GFN/MFN). So use replace mfn_to_gmfn with mfn_to_gfn in x86 code. Take the opportunity to convert some of the callers to use typesafe GFN and format the message correctly. No functional changes. Signed-off-by: Julien Grall <julien.grall@arm.com> -- Changes in v2: - mfn_to_gfn now returns a gfn_t - Use %pd and PRI_gfn when possible in the message - Don't split format string to help grep/ack. --- xen/arch/x86/domain.c | 34 +++++++++++++++++++--------------- xen/arch/x86/mm.c | 9 +++++---- xen/arch/x86/pv/emul-priv-op.c | 4 ++-- xen/drivers/passthrough/x86/iommu.c | 16 +++++++++------- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 9eaa978ce5..8d29dfeecc 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -679,7 +679,7 @@ int arch_domain_soft_reset(struct domain *d) int ret = 0; struct domain *owner; mfn_t mfn; - unsigned long gfn; + gfn_t gfn; p2m_type_t p2mt; unsigned int i; @@ -713,19 +713,20 @@ int arch_domain_soft_reset(struct domain *d) ASSERT( owner == d ); mfn = page_to_mfn(page); - gfn = mfn_to_gmfn(d, mfn_x(mfn)); + gfn = mfn_to_gfn(d, mfn); /* * gfn == INVALID_GFN indicates that the shared_info page was never mapped * to the domain's address space and there is nothing to replace. */ - if ( gfn == gfn_x(INVALID_GFN) ) + if ( gfn_eq(gfn, INVALID_GFN) ) goto exit_put_page; - if ( !mfn_eq(get_gfn_query(d, gfn, &p2mt), mfn) ) + if ( !mfn_eq(get_gfn_query(d, gfn_x(gfn), &p2mt), mfn) ) { - printk(XENLOG_G_ERR "Failed to get Dom%d's shared_info GFN (%lx)\n", - d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to get %pd's shared_info GFN (%"PRI_gfn")\n", + d, gfn_x(gfn)); ret = -EINVAL; goto exit_put_gfn; } @@ -733,31 +734,34 @@ int arch_domain_soft_reset(struct domain *d) new_page = alloc_domheap_page(d, 0); if ( !new_page ) { - printk(XENLOG_G_ERR "Failed to alloc a page to replace" - " Dom%d's shared_info frame %lx\n", d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to alloc a page to replace %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); ret = -ENOMEM; goto exit_put_gfn; } - ret = guest_physmap_remove_page(d, _gfn(gfn), mfn, PAGE_ORDER_4K); + ret = guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); if ( ret ) { - printk(XENLOG_G_ERR "Failed to remove Dom%d's shared_info frame %lx\n", - d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to remove %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); free_domheap_page(new_page); goto exit_put_gfn; } - ret = guest_physmap_add_page(d, _gfn(gfn), page_to_mfn(new_page), + ret = guest_physmap_add_page(d, gfn, page_to_mfn(new_page), PAGE_ORDER_4K); if ( ret ) { - printk(XENLOG_G_ERR "Failed to add a page to replace" - " Dom%d's shared_info frame %lx\n", d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to add a page to replace %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); free_domheap_page(new_page); } exit_put_gfn: - put_gfn(d, gfn); + put_gfn(d, gfn_x(gfn)); exit_put_page: put_page(page); diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 45fadbab61..9878453eb0 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -2632,19 +2632,20 @@ int free_page_type(struct page_info *page, unsigned long type, { #ifdef CONFIG_PV struct domain *owner = page_get_owner(page); - unsigned long gmfn; int rc; if ( likely(owner != NULL) && unlikely(paging_mode_enabled(owner)) ) { + gfn_t gfn; + /* A page table is dirtied when its type count becomes zero. */ paging_mark_dirty(owner, page_to_mfn(page)); ASSERT(!shadow_mode_refcounts(owner)); - gmfn = mfn_to_gmfn(owner, mfn_x(page_to_mfn(page))); - if ( VALID_M2P(gmfn) ) - shadow_remove_all_shadows(owner, _mfn(gmfn)); + gfn = mfn_to_gfn(owner, page_to_mfn(page)); + if ( VALID_M2P(gfn_x(gfn)) ) + shadow_remove_all_shadows(owner, _mfn(gfn_x(gfn))); } if ( !(type & PGT_partial) ) diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c index af74f50dc8..e976ff9898 100644 --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -712,7 +712,7 @@ static int read_cr(unsigned int reg, unsigned long *val, if ( !is_pv_32bit_domain(currd) ) { mfn = pagetable_get_mfn(curr->arch.guest_table); - *val = xen_pfn_to_cr3(mfn_to_gmfn(currd, mfn_x(mfn))); + *val = xen_pfn_to_cr3(gfn_x(mfn_to_gfn(currd, mfn))); } else { @@ -721,7 +721,7 @@ static int read_cr(unsigned int reg, unsigned long *val, mfn = l4e_get_mfn(*pl4e); unmap_domain_page(pl4e); - *val = compat_pfn_to_cr3(mfn_to_gmfn(currd, mfn_x(mfn))); + *val = compat_pfn_to_cr3(gfn_x(mfn_to_gfn(currd, mfn))); } /* PTs should not be shared */ BUG_ON(page_get_owner(mfn_to_page(mfn)) == dom_cow); diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c index 034ac903dd..7a756ef19e 100644 --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -92,15 +92,17 @@ int arch_iommu_populate_page_table(struct domain *d) if ( is_hvm_domain(d) || (page->u.inuse.type_info & PGT_type_mask) == PGT_writable_page ) { - unsigned long mfn = mfn_x(page_to_mfn(page)); - unsigned long gfn = mfn_to_gmfn(d, mfn); + mfn_t mfn = page_to_mfn(page); + gfn_t gfn = mfn_to_gfn(d, mfn); unsigned int flush_flags = 0; - if ( gfn != gfn_x(INVALID_GFN) ) + if ( !gfn_eq(gfn, INVALID_GFN) ) { - ASSERT(!(gfn >> DEFAULT_DOMAIN_ADDRESS_WIDTH)); - BUG_ON(SHARED_M2P(gfn)); - rc = iommu_map(d, _dfn(gfn), _mfn(mfn), PAGE_ORDER_4K, + dfn_t dfn = _dfn(gfn_x(gfn)); + + ASSERT(!(gfn_x(gfn) >> DEFAULT_DOMAIN_ADDRESS_WIDTH)); + BUG_ON(SHARED_M2P(gfn_x(gfn))); + rc = iommu_map(d, dfn, mfn, PAGE_ORDER_4K, IOMMUF_readable | IOMMUF_writable, &flush_flags); @@ -118,7 +120,7 @@ int arch_iommu_populate_page_table(struct domain *d) ((page->u.inuse.type_info & PGT_type_mask) != PGT_writable_page) ) { - rc = iommu_unmap(d, _dfn(gfn), PAGE_ORDER_4K, &flush_flags); + rc = iommu_unmap(d, dfn, PAGE_ORDER_4K, &flush_flags); /* If the type changed yet again, simply force a retry. */ if ( !rc && ((page->u.inuse.type_info & PGT_type_mask) == PGT_writable_page) ) -- 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: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien.grall@arm.com>, "Wei Liu" <wei.liu2@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [Xen-devel] [PATCH 04/14] xen/x86: Use mfn_to_gfn rather than mfn_to_gmfn Date: Tue, 7 May 2019 16:14:48 +0100 [thread overview] Message-ID: <20190507151458.29350-5-julien.grall@arm.com> (raw) Message-ID: <20190507151448.YV2fotrMxlSWpSy0w2-7SfqjTLtn1I824lESSjkAVxo@z> (raw) In-Reply-To: <20190507151458.29350-1-julien.grall@arm.com> mfn_to_gfn and mfn_to_gmfn are doing exactly the same except the former is using mfn_t. Furthermore, the naming of the former is more consistent with the current naming scheme (GFN/MFN). So use replace mfn_to_gmfn with mfn_to_gfn in x86 code. Take the opportunity to convert some of the callers to use typesafe GFN and format the message correctly. No functional changes. Signed-off-by: Julien Grall <julien.grall@arm.com> -- Changes in v2: - mfn_to_gfn now returns a gfn_t - Use %pd and PRI_gfn when possible in the message - Don't split format string to help grep/ack. --- xen/arch/x86/domain.c | 34 +++++++++++++++++++--------------- xen/arch/x86/mm.c | 9 +++++---- xen/arch/x86/pv/emul-priv-op.c | 4 ++-- xen/drivers/passthrough/x86/iommu.c | 16 +++++++++------- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 9eaa978ce5..8d29dfeecc 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -679,7 +679,7 @@ int arch_domain_soft_reset(struct domain *d) int ret = 0; struct domain *owner; mfn_t mfn; - unsigned long gfn; + gfn_t gfn; p2m_type_t p2mt; unsigned int i; @@ -713,19 +713,20 @@ int arch_domain_soft_reset(struct domain *d) ASSERT( owner == d ); mfn = page_to_mfn(page); - gfn = mfn_to_gmfn(d, mfn_x(mfn)); + gfn = mfn_to_gfn(d, mfn); /* * gfn == INVALID_GFN indicates that the shared_info page was never mapped * to the domain's address space and there is nothing to replace. */ - if ( gfn == gfn_x(INVALID_GFN) ) + if ( gfn_eq(gfn, INVALID_GFN) ) goto exit_put_page; - if ( !mfn_eq(get_gfn_query(d, gfn, &p2mt), mfn) ) + if ( !mfn_eq(get_gfn_query(d, gfn_x(gfn), &p2mt), mfn) ) { - printk(XENLOG_G_ERR "Failed to get Dom%d's shared_info GFN (%lx)\n", - d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to get %pd's shared_info GFN (%"PRI_gfn")\n", + d, gfn_x(gfn)); ret = -EINVAL; goto exit_put_gfn; } @@ -733,31 +734,34 @@ int arch_domain_soft_reset(struct domain *d) new_page = alloc_domheap_page(d, 0); if ( !new_page ) { - printk(XENLOG_G_ERR "Failed to alloc a page to replace" - " Dom%d's shared_info frame %lx\n", d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to alloc a page to replace %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); ret = -ENOMEM; goto exit_put_gfn; } - ret = guest_physmap_remove_page(d, _gfn(gfn), mfn, PAGE_ORDER_4K); + ret = guest_physmap_remove_page(d, gfn, mfn, PAGE_ORDER_4K); if ( ret ) { - printk(XENLOG_G_ERR "Failed to remove Dom%d's shared_info frame %lx\n", - d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to remove %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); free_domheap_page(new_page); goto exit_put_gfn; } - ret = guest_physmap_add_page(d, _gfn(gfn), page_to_mfn(new_page), + ret = guest_physmap_add_page(d, gfn, page_to_mfn(new_page), PAGE_ORDER_4K); if ( ret ) { - printk(XENLOG_G_ERR "Failed to add a page to replace" - " Dom%d's shared_info frame %lx\n", d->domain_id, gfn); + printk(XENLOG_G_ERR + "Failed to add a page to replace %pd's shared_info frame %"PRI_gfn"\n", + d, gfn_x(gfn)); free_domheap_page(new_page); } exit_put_gfn: - put_gfn(d, gfn); + put_gfn(d, gfn_x(gfn)); exit_put_page: put_page(page); diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 45fadbab61..9878453eb0 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -2632,19 +2632,20 @@ int free_page_type(struct page_info *page, unsigned long type, { #ifdef CONFIG_PV struct domain *owner = page_get_owner(page); - unsigned long gmfn; int rc; if ( likely(owner != NULL) && unlikely(paging_mode_enabled(owner)) ) { + gfn_t gfn; + /* A page table is dirtied when its type count becomes zero. */ paging_mark_dirty(owner, page_to_mfn(page)); ASSERT(!shadow_mode_refcounts(owner)); - gmfn = mfn_to_gmfn(owner, mfn_x(page_to_mfn(page))); - if ( VALID_M2P(gmfn) ) - shadow_remove_all_shadows(owner, _mfn(gmfn)); + gfn = mfn_to_gfn(owner, page_to_mfn(page)); + if ( VALID_M2P(gfn_x(gfn)) ) + shadow_remove_all_shadows(owner, _mfn(gfn_x(gfn))); } if ( !(type & PGT_partial) ) diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c index af74f50dc8..e976ff9898 100644 --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -712,7 +712,7 @@ static int read_cr(unsigned int reg, unsigned long *val, if ( !is_pv_32bit_domain(currd) ) { mfn = pagetable_get_mfn(curr->arch.guest_table); - *val = xen_pfn_to_cr3(mfn_to_gmfn(currd, mfn_x(mfn))); + *val = xen_pfn_to_cr3(gfn_x(mfn_to_gfn(currd, mfn))); } else { @@ -721,7 +721,7 @@ static int read_cr(unsigned int reg, unsigned long *val, mfn = l4e_get_mfn(*pl4e); unmap_domain_page(pl4e); - *val = compat_pfn_to_cr3(mfn_to_gmfn(currd, mfn_x(mfn))); + *val = compat_pfn_to_cr3(gfn_x(mfn_to_gfn(currd, mfn))); } /* PTs should not be shared */ BUG_ON(page_get_owner(mfn_to_page(mfn)) == dom_cow); diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c index 034ac903dd..7a756ef19e 100644 --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -92,15 +92,17 @@ int arch_iommu_populate_page_table(struct domain *d) if ( is_hvm_domain(d) || (page->u.inuse.type_info & PGT_type_mask) == PGT_writable_page ) { - unsigned long mfn = mfn_x(page_to_mfn(page)); - unsigned long gfn = mfn_to_gmfn(d, mfn); + mfn_t mfn = page_to_mfn(page); + gfn_t gfn = mfn_to_gfn(d, mfn); unsigned int flush_flags = 0; - if ( gfn != gfn_x(INVALID_GFN) ) + if ( !gfn_eq(gfn, INVALID_GFN) ) { - ASSERT(!(gfn >> DEFAULT_DOMAIN_ADDRESS_WIDTH)); - BUG_ON(SHARED_M2P(gfn)); - rc = iommu_map(d, _dfn(gfn), _mfn(mfn), PAGE_ORDER_4K, + dfn_t dfn = _dfn(gfn_x(gfn)); + + ASSERT(!(gfn_x(gfn) >> DEFAULT_DOMAIN_ADDRESS_WIDTH)); + BUG_ON(SHARED_M2P(gfn_x(gfn))); + rc = iommu_map(d, dfn, mfn, PAGE_ORDER_4K, IOMMUF_readable | IOMMUF_writable, &flush_flags); @@ -118,7 +120,7 @@ int arch_iommu_populate_page_table(struct domain *d) ((page->u.inuse.type_info & PGT_type_mask) != PGT_writable_page) ) { - rc = iommu_unmap(d, _dfn(gfn), PAGE_ORDER_4K, &flush_flags); + rc = iommu_unmap(d, dfn, PAGE_ORDER_4K, &flush_flags); /* If the type changed yet again, simply force a retry. */ if ( !rc && ((page->u.inuse.type_info & PGT_type_mask) == PGT_writable_page) ) -- 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 ` [PATCH 01/14] xen/arm: Use mfn_to_pdx instead of pfn_to_pdx when possible Julien Grall 2019-05-07 15:14 ` [Xen-devel] " 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 ` Julien Grall [this message] 2019-05-07 15:14 ` [Xen-devel] [PATCH 04/14] xen/x86: Use mfn_to_gfn rather than mfn_to_gmfn 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-5-julien.grall@arm.com \ --to=julien.grall@arm.com \ --cc=andrew.cooper3@citrix.com \ --cc=jbeulich@suse.com \ --cc=roger.pau@citrix.com \ --cc=wei.liu2@citrix.com \ --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.