[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] dom0: Fix bad pte at booting time



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1223543473 -3600
# Node ID 75622c7943a9ae52cec513946615a0f8651ecbfd
# Parent  92094d768241532377ff6a88448118338a398ee0
dom0: Fix bad pte at booting time

Backport upstream kernel patch to fix Dom0's bad pte bug.
  -  In Dom0 kernel, at boot time, system will call bt_ioremap() to do
  mappings for the Boot Time Fix Memory region. Also system will call
  bt_iounmap() to unmap the memory region by setting phys=3D0. In this
  case, system will encounter pte_ERROR(). This patch backports the
  upstream kernel patch by Ingo Molnar <mingo@xxxxxxx>, with commit:
  70c9f590ffc3f959cc81c1a3cecb6b8133caf35d

Signed-off-by: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
---
 arch/x86_64/mm/init-xen.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -r 92094d768241 -r 75622c7943a9 arch/x86_64/mm/init-xen.c
--- a/arch/x86_64/mm/init-xen.c Wed Oct 08 14:13:52 2008 +0100
+++ b/arch/x86_64/mm/init-xen.c Thu Oct 09 10:11:13 2008 +0100
@@ -274,7 +274,7 @@ static __init void set_pte_phys(unsigned
                new_pte = __pte(0);
 
        pte = pte_offset_kernel(pmd, vaddr);
-       if (!pte_none(*pte) &&
+       if (!pte_none(*pte) && pte_val(new_pte) &&
            __pte_val(*pte) != (__pte_val(new_pte) & __supported_pte_mask))
                pte_ERROR(*pte);
        set_pte(pte, new_pte);
@@ -325,7 +325,7 @@ static __init void set_pte_phys_ma(unsig
        new_pte = pfn_pte_ma(phys >> PAGE_SHIFT, prot);
 
        pte = pte_offset_kernel(pmd, vaddr);
-       if (!pte_none(*pte) &&
+       if (!pte_none(*pte) && pte_val(new_pte) &&
 #ifdef CONFIG_ACPI
            /* __acpi_map_table() fails to properly call clear_fixmap() */
            (vaddr < __fix_to_virt(FIX_ACPI_END) ||

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.