|
|
|
|
|
|
|
|
|
|
xen-changelog
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [linux-2.6.18-xen] dom0: Fix bad pte at booting time,
Xen patchbot-linux-2.6.18-xen <=
|
|
|
|
|