diff options
-rw-r--r-- | arch/x86/include/asm/xen/page.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h index b913915e8e63..4a092ccdd147 100644 --- a/arch/x86/include/asm/xen/page.h +++ b/arch/x86/include/asm/xen/page.h | |||
@@ -167,7 +167,12 @@ static inline xpaddr_t machine_to_phys(xmaddr_t machine) | |||
167 | */ | 167 | */ |
168 | static inline unsigned long mfn_to_local_pfn(unsigned long mfn) | 168 | static inline unsigned long mfn_to_local_pfn(unsigned long mfn) |
169 | { | 169 | { |
170 | unsigned long pfn = mfn_to_pfn(mfn); | 170 | unsigned long pfn; |
171 | |||
172 | if (xen_feature(XENFEAT_auto_translated_physmap)) | ||
173 | return mfn; | ||
174 | |||
175 | pfn = mfn_to_pfn(mfn); | ||
171 | if (get_phys_to_machine(pfn) != mfn) | 176 | if (get_phys_to_machine(pfn) != mfn) |
172 | return -1; /* force !pfn_valid() */ | 177 | return -1; /* force !pfn_valid() */ |
173 | return pfn; | 178 | return pfn; |