lkml.org 
[lkml]   [2007]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[2.6.20.21 review 19/35] POWERPC: Flush registers to proper task context
    commit 0ee6c15e7ba7b36a217cdadb292eeaf32a057a59 in mainline.

    When we flush register state for FP, Altivec, or SPE in flush_*_to_thread
    we need to respect the task_struct that the caller has passed to us.

    Most cases we are called with current, however sometimes (ptrace) we may
    be passed a different task_struct.

    This showed up when using gdbserver debugging a simple program that used
    floating point. When gdb tried to show the FP regs they all showed up as
    0, because the child's FP registers were never properly flushed to memory.

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    arch/powerpc/kernel/process.c | 6 +++---
    1 files changed, 3 insertions(+), 3 deletions(-)

    Index: 2.6/arch/powerpc/kernel/process.c
    ===================================================================
    --- 2.6.orig/arch/powerpc/kernel/process.c
    +++ 2.6/arch/powerpc/kernel/process.c
    @@ -84,7 +84,7 @@ void flush_fp_to_thread(struct task_stru
    */
    BUG_ON(tsk != current);
    #endif
    - giveup_fpu(current);
    + giveup_fpu(tsk);
    }
    preempt_enable();
    }
    @@ -144,7 +144,7 @@ void flush_altivec_to_thread(struct task
    #ifdef CONFIG_SMP
    BUG_ON(tsk != current);
    #endif
    - giveup_altivec(current);
    + giveup_altivec(tsk);
    }
    preempt_enable();
    }
    @@ -183,7 +183,7 @@ void flush_spe_to_thread(struct task_str
    #ifdef CONFIG_SMP
    BUG_ON(tsk != current);
    #endif
    - giveup_spe(current);
    + giveup_spe(tsk);
    }
    preempt_enable();
    }
    --
    -
    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: 2007-10-13 16:51    [W:0.021 / U:1.520 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site