forked from Minki/linux
xen/p2m: Check for auto-xlat when doing mfn_to_local_pfn.
Most of the functions in page.h are prefaced with if (xen_feature(XENFEAT_auto_translated_physmap)) return mfn; Except the mfn_to_local_pfn. At a first sight, the function should work without this patch - as the 'mfn_to_mfn' has a similar check. But there are no such check in the 'get_phys_to_machine' function - so we would crash in there. This fixes it by following the convention of having the check for auto-xlat in these static functions. Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
parent
1fe565517b
commit
fc590efe66
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user