Annotation of /trunk/kernel26-xen/patches-2.6.25-r1/1039-2.6.25-xen-x86_64-init-cleanup.patch
Parent Directory | Revision Log
Revision 609 -
(hide annotations)
(download)
Fri May 23 17:35:37 2008 UTC (16 years, 4 months ago) by niro
File size: 2131 byte(s)
Fri May 23 17:35:37 2008 UTC (16 years, 4 months ago) by niro
File size: 2131 byte(s)
-using opensuse xen patchset, updated kernel configs
1 | niro | 609 | From: jbeulich@novell.com |
2 | Subject: miscellaneous initialization code cleanup | ||
3 | Patch-mainline: obsolete | ||
4 | |||
5 | Index: head-2008-03-06/arch/x86/kernel/head_64-xen.S | ||
6 | =================================================================== | ||
7 | --- head-2008-03-06.orig/arch/x86/kernel/head_64-xen.S 2008-03-06 16:35:33.000000000 +0100 | ||
8 | +++ head-2008-03-06/arch/x86/kernel/head_64-xen.S 2008-03-06 10:52:49.000000000 +0100 | ||
9 | @@ -52,7 +52,6 @@ ENTRY(name) | ||
10 | |||
11 | NEXT_PAGE(init_level4_pgt) | ||
12 | .fill 512,8,0 | ||
13 | -NEXT_PAGE(init_level4_user_pgt) | ||
14 | /* | ||
15 | * We update two pgd entries to make kernel and user pgd consistent | ||
16 | * at pgd_populate(). It can be used for kernel modules. So we place | ||
17 | Index: head-2008-03-06/arch/x86/mm/init_64-xen.c | ||
18 | =================================================================== | ||
19 | --- head-2008-03-06.orig/arch/x86/mm/init_64-xen.c 2008-03-06 17:07:38.000000000 +0100 | ||
20 | +++ head-2008-03-06/arch/x86/mm/init_64-xen.c 2008-03-06 17:18:46.000000000 +0100 | ||
21 | @@ -60,6 +60,8 @@ unsigned int __kernel_page_user; | ||
22 | EXPORT_SYMBOL(__kernel_page_user); | ||
23 | #endif | ||
24 | |||
25 | +int after_bootmem; | ||
26 | + | ||
27 | extern unsigned long *contiguous_bitmap; | ||
28 | |||
29 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | ||
30 | @@ -102,6 +104,11 @@ void __meminit early_make_page_readonly( | ||
31 | if (xen_feature(feature)) | ||
32 | return; | ||
33 | |||
34 | + if (after_bootmem) { | ||
35 | + make_page_readonly(va, feature); | ||
36 | + return; | ||
37 | + } | ||
38 | + | ||
39 | addr = (unsigned long) page[pgd_index(_va)]; | ||
40 | addr_to_page(addr, page); | ||
41 | |||
42 | @@ -236,7 +243,6 @@ void show_mem(void) | ||
43 | |||
44 | static unsigned long __meminitdata table_start; | ||
45 | static unsigned long __meminitdata table_end; | ||
46 | -int after_bootmem; | ||
47 | |||
48 | static __init void *spp_getpage(void) | ||
49 | { | ||
50 | @@ -557,9 +563,9 @@ phys_pmd_init(pmd_t *pmd_page, unsigned | ||
51 | for (k = 0; k < PTRS_PER_PTE; pte++, k++, address += PTE_SIZE) { | ||
52 | unsigned long pteval = address | _PAGE_NX | _KERNPG_TABLE; | ||
53 | |||
54 | - if ((address >= end) || | ||
55 | - ((address >> PAGE_SHIFT) >= | ||
56 | - xen_start_info->nr_pages)) | ||
57 | + if (address >= (after_bootmem | ||
58 | + ? end | ||
59 | + : xen_start_info->nr_pages << PAGE_SHIFT)) | ||
60 | pteval = 0; | ||
61 | else if (make_readonly(address)) | ||
62 | pteval &= ~_PAGE_RW; |