From: Juergen Gross Date: Mon, 12 Jan 2015 05:05:07 +0000 (+0100) Subject: xen: correct error for building p2m list on 32 bits X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=82c92ed1357bca22a5d637fbb93dab3eb18a8e8c;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git xen: correct error for building p2m list on 32 bits In xen_rebuild_p2m_list() for large areas of invalid or identity mapped memory the pmd entries on 32 bit systems are initialized wrong. Correct this error. Suggested-by: Boris Ostrovsky Signed-off-by: Juergen Gross Signed-off-by: David Vrabel --- diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index cab221da5f10..ff4ebd820603 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c @@ -378,7 +378,7 @@ static void __init xen_rebuild_p2m_list(unsigned long *p2m) p2m_missing_pte : p2m_identity_pte; for (i = 0; i < PMDS_PER_MID_PAGE; i++) { pmdp = populate_extra_pmd( - (unsigned long)(p2m + pfn + i * PTRS_PER_PTE)); + (unsigned long)(p2m + pfn) + i * PMD_SIZE); set_pmd(pmdp, __pmd(__pa(ptep) | _KERNPG_TABLE)); } }