Re: [PATCH][Fix][Resend] Fix Bug #4959: Page tables corrupted during resume on x86-64 (take 3)

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

 



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 <[email protected]>

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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux