Message ID | 1338700063-30670-1-git-send-email-tiejun.chen@windriver.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Changes from V2: * populate those existed codes to reorganize codes * add check if we'll trigger kernel stack over flow Changes from V1: * use memcpy simply to withdraw copy_exc_stack * add !(regs->msr & MSR_PR)) and WARN_ON(test_thread_flag(TIF_EMULATE_STACK_STORE)); to make sure we're in goot path. * move this migration process inside 'restore' * clear TIF flag atomically Tiejun Chen (3): powerpc/kprobe: introduce a new thread flag ppc32/kprobe: complete kprobe and migrate exception frame ppc32/kprobe: don't emulate store when kprobe stwu r1 arch/powerpc/include/asm/thread_info.h | 3 ++ arch/powerpc/kernel/entry_32.S | 43 ++++++++++++++++++++++++++----- arch/powerpc/lib/sstep.c | 37 ++++++++++++++++++++++++++- 3 files changed, 74 insertions(+), 9 deletions(-)
On 06/03/2012 01:07 PM, Tiejun Chen wrote: > Changes from V2: > > * populate those existed codes to reorganize codes > * add check if we'll trigger kernel stack over flow BTW, I always validate this on mpc8536ds(UP)/mpc8572ds(SMP) with/without CONFIG_PREEMPT. Tiejun > > Changes from V1: > > * use memcpy simply to withdraw copy_exc_stack > * add !(regs->msr & MSR_PR)) and > WARN_ON(test_thread_flag(TIF_EMULATE_STACK_STORE)); > to make sure we're in goot path. > * move this migration process inside 'restore' > * clear TIF flag atomically > > Tiejun Chen (3): > powerpc/kprobe: introduce a new thread flag > ppc32/kprobe: complete kprobe and migrate exception frame > ppc32/kprobe: don't emulate store when kprobe stwu r1 > > arch/powerpc/include/asm/thread_info.h | 3 ++ > arch/powerpc/kernel/entry_32.S | 43 ++++++++++++++++++++++++++----- > arch/powerpc/lib/sstep.c | 37 ++++++++++++++++++++++++++- > 3 files changed, 74 insertions(+), 9 deletions(-) > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev > >
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index bcebc75..45d098c 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -110,6 +110,8 @@ static inline struct thread_info *current_thread_info(void) #define TIF_NOERROR 12 /* Force successful syscall return */ #define TIF_NOTIFY_RESUME 13 /* callback before returning to user */ #define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */ +#define TIF_EMULATE_STACK_STORE 17 /* Is an instruction emulation + for stack store? */ /* as above, but as bit values */ #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) @@ -126,6 +128,7 @@ static inline struct thread_info *current_thread_info(void) #define _TIF_NOERROR (1<<TIF_NOERROR) #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) +#define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE) #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT)
We need to add a new thread flag, TIF_EMULATE_STACK_STORE, for emulating stack store operation while exiting exception. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> --- arch/powerpc/include/asm/thread_info.h | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)