Commit 146c4e51 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk

xen/m2p: No need to catch exceptions when we know that there is no RAM

.. beyound what we think is the end of memory. However there might
be more System RAM - but assigned to a guest. Hence jump to the
M2P override check and consult.

[v1: Added Review-by tag]
Reviewed-by: default avatarIan Campbell <ian.campbell@citrix.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent fc25151d
...@@ -85,6 +85,10 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn) ...@@ -85,6 +85,10 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)
if (xen_feature(XENFEAT_auto_translated_physmap)) if (xen_feature(XENFEAT_auto_translated_physmap))
return mfn; return mfn;
if (unlikely((mfn >> machine_to_phys_order) != 0)) {
pfn = ~0;
goto try_override;
}
pfn = 0; pfn = 0;
/* /*
* The array access can fail (e.g., device space beyond end of RAM). * The array access can fail (e.g., device space beyond end of RAM).
...@@ -92,7 +96,7 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn) ...@@ -92,7 +96,7 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)
* but we must handle the fault without crashing! * but we must handle the fault without crashing!
*/ */
__get_user(pfn, &machine_to_phys_mapping[mfn]); __get_user(pfn, &machine_to_phys_mapping[mfn]);
try_override:
/* /*
* If this appears to be a foreign mfn (because the pfn * If this appears to be a foreign mfn (because the pfn
* doesn't map back to the mfn), then check the local override * doesn't map back to the mfn), then check the local override
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment