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

[Xen-changelog] [linux-2.6.18-xen] xen/x86-64: fix phys_pmd_init() (regression from c/s 547)



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1243585036 -3600
# Node ID 9090872bac23193f5b8fb113d3498b85e49cb3f1
# Parent  85a4c18ad9aab0ed2c31792fa75491b8daca8f08
xen/x86-64: fix phys_pmd_init() (regression from c/s 547)

I didn't pay attention to the fact that 'end' must always be an upper
bound, while xen_start_info->nr_pages must be additionally during
boot.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
 arch/x86_64/mm/init-xen.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -r 85a4c18ad9aa -r 9090872bac23 arch/x86_64/mm/init-xen.c
--- a/arch/x86_64/mm/init-xen.c Fri May 29 09:16:37 2009 +0100
+++ b/arch/x86_64/mm/init-xen.c Fri May 29 09:17:16 2009 +0100
@@ -457,9 +457,9 @@ phys_pmd_init(pmd_t *pmd, unsigned long 
                for (k = 0; k < PTRS_PER_PTE; pte++, k++, address += PTE_SIZE) {
                        unsigned long pteval = address | _PAGE_NX | 
_KERNPG_TABLE;
 
-                       if (address >= (after_bootmem
-                                       ? end
-                                       : xen_start_info->nr_pages << 
PAGE_SHIFT))
+                       if (address >= end ||
+                           (!after_bootmem &&
+                            (address >> PAGE_SHIFT) >= 
xen_start_info->nr_pages))
                                pteval = 0;
                        else if (make_readonly(address))
                                pteval &= ~_PAGE_RW;

_______________________________________________
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®.