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; |
