Re: [Xen-devel] [PATCH v11 01/12] xen/p2m: Check for auto-xlat whendoing mfn_to_local_pfn.

From: Stefano Stabellini
Date: Wed Dec 18 2013 - 09:11:15 EST


On Tue, 17 Dec 2013, Konrad Rzeszutek Wilk wrote:
> From: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>


> arch/x86/include/asm/xen/page.h | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
> index b913915..4a092cc 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)
> */
> 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)
> return -1; /* force !pfn_valid() */
> return pfn;
> --
> 1.8.3.1
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/