aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/p2m.c
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2014-11-28 05:53:57 -0500
committerDavid Vrabel <david.vrabel@citrix.com>2014-12-04 09:09:09 -0500
commit0aad5689837c882d2539f50f42f686b74046c0a0 (patch)
tree5367d28f3b43ed9dba583106ffc2364e3ef67c23 /arch/x86/xen/p2m.c
parent792230c3a66b3d17d6dcca712866d24f2283d4a6 (diff)
xen: Hide get_phys_to_machine() to be able to tune common path
Today get_phys_to_machine() is always called when the mfn for a pfn is to be obtained. Add a wrapper __pfn_to_mfn() as inline function to be able to avoid calling get_phys_to_machine() when possible as soon as the switch to a linear mapped p2m list has been done. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'arch/x86/xen/p2m.c')
-rw-r--r--arch/x86/xen/p2m.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index eddec40a4c20..8c3d8fbbba93 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -787,7 +787,7 @@ static int m2p_add_override(unsigned long mfn, struct page *page,
787 * because mfn_to_pfn (that ends up being called by GUPF) will 787 * because mfn_to_pfn (that ends up being called by GUPF) will
788 * return the backend pfn rather than the frontend pfn. */ 788 * return the backend pfn rather than the frontend pfn. */
789 pfn = mfn_to_pfn_no_overrides(mfn); 789 pfn = mfn_to_pfn_no_overrides(mfn);
790 if (get_phys_to_machine(pfn) == mfn) 790 if (__pfn_to_mfn(pfn) == mfn)
791 set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)); 791 set_phys_to_machine(pfn, FOREIGN_FRAME(mfn));
792 792
793 return 0; 793 return 0;
@@ -967,7 +967,7 @@ static int m2p_remove_override(struct page *page,
967 * pfn again. */ 967 * pfn again. */
968 mfn &= ~FOREIGN_FRAME_BIT; 968 mfn &= ~FOREIGN_FRAME_BIT;
969 pfn = mfn_to_pfn_no_overrides(mfn); 969 pfn = mfn_to_pfn_no_overrides(mfn);
970 if (get_phys_to_machine(pfn) == FOREIGN_FRAME(mfn) && 970 if (__pfn_to_mfn(pfn) == FOREIGN_FRAME(mfn) &&
971 m2p_find_override(mfn) == NULL) 971 m2p_find_override(mfn) == NULL)
972 set_phys_to_machine(pfn, mfn); 972 set_phys_to_machine(pfn, mfn);
973 973
@@ -992,7 +992,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
992 } 992 }
993 993
994 for (i = 0; i < count; i++) { 994 for (i = 0; i < count; i++) {
995 unsigned long mfn = get_phys_to_machine(page_to_pfn(pages[i])); 995 unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i]));
996 unsigned long pfn = page_to_pfn(pages[i]); 996 unsigned long pfn = page_to_pfn(pages[i]);
997 997
998 if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) { 998 if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) {