Magellan Linux

Contents of /trunk/kernel26-xen/patches-2.6.25-r1/1057-2.6.25-xen-Include-user-page-tables-on-head_64.S.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 606 - (show annotations) (download)
Thu May 22 23:13:13 2008 UTC (15 years, 11 months ago) by niro
File size: 1667 byte(s)
-ver bump to 2.6.25-magellan-r1:
- linux-2.6.25.4
- fbcondecor-0.9.4
- squashfs-3.3
- unionfs-2.3.3
- tuxonice-3.0-rc7
- linux-phc-0.3.0
- acpi-dstd-0.9a
- reiser4
- xen-3.2.0
. ipw3945-1.2.2

1 From d84f1d3e1dc0fa31d7a7f459d3c7a4128df26e6d Mon Sep 17 00:00:00 2001
2 From: Eduardo Habkost <ehabkost@redhat.com>
3 Date: Tue, 11 Dec 2007 12:02:11 -0200
4 Subject: [PATCH] Include user page tables on head_64.S
5
6 This will need to be conditional on Xen being enabled.
7
8 Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
9 ---
10 arch/x86/kernel/head_64.S | 20 ++++++++++++++++++++
11 1 files changed, 20 insertions(+), 0 deletions(-)
12
13 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
14 index 923ad56..b104024 100644
15 --- a/arch/x86/kernel/head_64.S
16 +++ b/arch/x86/kernel/head_64.S
17 @@ -356,6 +356,18 @@ NEXT_PAGE(init_level4_pgt)
18 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
19 .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
20
21 +
22 + /*
23 + * We update two pgd entries to make kernel and user pgd consistent
24 + * at pgd_populate(). It can be used for kernel modules. So we place
25 + * this page here for those cases to avoid memory corruption.
26 + * We also use this page to establish the initiali mapping for
27 + * vsyscall area.
28 + */
29 +NEXT_PAGE(init_level4_user_pgt)
30 + .fill 512,8,0
31 +
32 +
33 NEXT_PAGE(level3_ident_pgt)
34 .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
35 .fill 511,8,0
36 @@ -366,6 +378,14 @@ NEXT_PAGE(level3_kernel_pgt)
37 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
38 .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
39
40 + /*
41 + * This is used for vsyscall area mapping as we have a different
42 + * level4 page table for user.
43 + */
44 +NEXT_PAGE(level3_user_pgt)
45 + .fill 512,8,0
46 +
47 +
48 NEXT_PAGE(level2_fixmap_pgt)
49 .fill 506,8,0
50 .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
51 --
52 1.5.4.1
53