diff options
author | Juergen Gross <jgross@suse.com> | 2014-11-28 05:53:57 -0500 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2014-12-04 09:09:09 -0500 |
commit | 0aad5689837c882d2539f50f42f686b74046c0a0 (patch) | |
tree | 5367d28f3b43ed9dba583106ffc2364e3ef67c23 /arch/x86/xen/p2m.c | |
parent | 792230c3a66b3d17d6dcca712866d24f2283d4a6 (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.c | 6 |
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)) { |