Messages in this thread Patch in this message | | | From | "Rafael J. Wysocki" <> | Subject | Re: [PATCH][Fix][Resend] Fix Bug #4959: Page tables corrupted during resume on x86-64 (take 3) | Date | Fri, 30 Sep 2005 00:01:08 +0200 |
| |
Hi,
On Thursday, 29 of September 2005 02:00, Siddha, Suresh B wrote: > On Wed, Sep 28, 2005 at 10:24:42PM +0200, Rafael J. Wysocki wrote: > > On Wednesday, 28 of September 2005 21:18, Andi Kleen wrote: > > > Also Suresh S. has a patch out to turn the initial page tables > > > into initdata. It'll probably conflict with that. Needs to be coordinated > > > with him. > > > > Do you mean the patch at: > > http://www.x86-64.org/lists/discuss/msg07297.html ? > > Unfortunately it interferes with the current swsusp code, which uses > > init_level4_pgt anyway. > > > > Could we please treat my patch as a (very much needed) urgent bugfix > > and make the whole swsusp code in line with the Suresh's patch later on? > > > > Suresh, could you please say what you think of it? > > My patch as such shouldn't change the behavior of the existing swsup > code. I am making only boot_level4_pgt as initdata. But not the > init_level4_pgt.
Suresh, unfortunately the kernel does not boot with your patch, because it clears init_level4_pgt. I think the patch that follows should be applied on top of it.
If I am right, than your patch does not conflict with mine (just tested).
Greetings, Rafael
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Index: linux-2.6.14-rc2-git7/arch/x86_64/mm/init.c =================================================================== --- linux-2.6.14-rc2-git7.orig/arch/x86_64/mm/init.c 2005-09-29 22:13:34.000000000 +0200 +++ linux-2.6.14-rc2-git7/arch/x86_64/mm/init.c 2005-09-29 22:13:55.000000000 +0200 @@ -313,7 +313,7 @@ void __cpuinit zap_low_mappings(int cpu) { if (cpu == 0) { - pgd_t *pgd = pgd_offset_k(0UL); + pgd_t *pgd = boot_level4_pgt; pgd_clear(pgd); } else { /* Index: linux-2.6.14-rc2-git7/include/asm-x86_64/proto.h =================================================================== --- linux-2.6.14-rc2-git7.orig/include/asm-x86_64/proto.h 2005-09-21 11:04:24.000000000 +0200 +++ linux-2.6.14-rc2-git7/include/asm-x86_64/proto.h 2005-09-29 22:22:19.000000000 +0200 @@ -22,6 +22,7 @@ #define mtrr_bp_init() do {} while (0) #endif extern void init_memory_mapping(unsigned long start, unsigned long end); +extern void zap_low_mappings(int cpu); extern void system_call(void); extern int kernel_syscall(void); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |