|
@@ -167,7 +167,12 @@ static inline xpaddr_t machine_to_phys(xmaddr_t machine)
|
|
|
*/
|
|
*/
|
|
|
static inline unsigned long mfn_to_local_pfn(unsigned long mfn)
|
|
static inline unsigned long mfn_to_local_pfn(unsigned long mfn)
|
|
|
{
|
|
{
|
|
|
- unsigned long pfn = mfn_to_pfn(mfn);
|
|
|
|
|
|
|
+ unsigned long pfn;
|
|
|
|
|
+
|
|
|
|
|
+ if (xen_feature(XENFEAT_auto_translated_physmap))
|
|
|
|
|
+ return mfn;
|
|
|
|
|
+
|
|
|
|
|
+ pfn = mfn_to_pfn(mfn);
|
|
|
if (get_phys_to_machine(pfn) != mfn)
|
|
if (get_phys_to_machine(pfn) != mfn)
|
|
|
return -1; /* force !pfn_valid() */
|
|
return -1; /* force !pfn_valid() */
|
|
|
return pfn;
|
|
return pfn;
|