lkml.org 
[lkml]   [2005]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 2.6.12-rc2-mm3

    * Stas Sergeev <stsp@aknet.ru> wrote:

    > Hi Ingo.
    >
    > I have some programs that crash
    > in 2.6.12-rc2-mm3. After seeing this:
    > http://www.uwsg.iu.edu/hypermail/linux/kernel/0504.1/1091.html

    does the patch below fix the problem for you? (already in Andrew's tree,
    should be in the next -mm patch)

    Ingo

    --

    delay the reloading of segment registers into switch_mm(), so that if
    the LDT size changes we dont get a (silent) fault and a zeroed selector
    register upon reloading.

    Signed-off-by: Ingo Molnar <mingo@elte.hu>

    --- linux/arch/i386/kernel/process.c.orig
    +++ linux/arch/i386/kernel/process.c
    @@ -612,12 +612,12 @@ struct task_struct fastcall * __switch_t
    asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs));

    /*
    - * Restore %fs and %gs if needed.
    + * Clear selectors if needed:
    */
    - if (unlikely(prev->fs | prev->gs | next->fs | next->gs)) {
    - loadsegment(fs, next->fs);
    - loadsegment(gs, next->gs);
    - }
    + if (unlikely((prev->fs | prev->gs) && !(next->fs | next->gs))) {
    + loadsegment(fs, next->fs);
    + loadsegment(gs, next->gs);
    + }

    /*
    * Now maybe reload the debug registers
    --- linux/include/asm-i386/mmu_context.h.orig
    +++ linux/include/asm-i386/mmu_context.h
    @@ -61,6 +61,13 @@ static inline void switch_mm(struct mm_s
    }
    }
    #endif
    + /*
    + * Now that we've switched the LDT, load segments:
    + */
    + if (unlikely(current->thread.fs | current->thread.gs)) {
    + loadsegment(fs, current->thread.fs);
    + loadsegment(gs, current->thread.gs);
    + }
    }

    #define deactivate_mm(tsk, mm) \
    -
    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-04-13 22:10    [W:0.023 / U:6.944 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site