lkml.org 
[lkml]   [2005]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [PATCH][Fix][Resend] Fix Bug #4959: Page tables corrupted during resume on x86-64 (take 3)
    Date
    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/
    \
     
     \ /
      Last update: 2005-09-30 00:03    [W:0.023 / U:270.464 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site