Currently BookE and Book3E always copy the thread_info from
the kernel stack when we enter the debug exception, so we can
remove these action here to avoid copying again.

Signed-off-by: Tiejun Chen <tiejun.c...@windriver.com>
---
 arch/powerpc/kernel/kgdb.c |   28 ----------------------------
 1 file changed, 28 deletions(-)

diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index 1a57307..e954888 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -153,39 +153,11 @@ static int kgdb_handle_breakpoint(struct pt_regs *regs)
 
 static int kgdb_singlestep(struct pt_regs *regs)
 {
-       struct thread_info *thread_info, *exception_thread_info;
-       struct thread_info *backup_current_thread_info;
-
        if (user_mode(regs))
                return 0;
 
-       backup_current_thread_info = (struct thread_info 
*)kmalloc(sizeof(struct thread_info), GFP_KERNEL);
-       /*
-        * On Book E and perhaps other processors, singlestep is handled on
-        * the critical exception stack.  This causes current_thread_info()
-        * to fail, since it it locates the thread_info by masking off
-        * the low bits of the current stack pointer.  We work around
-        * this issue by copying the thread_info from the kernel stack
-        * before calling kgdb_handle_exception, and copying it back
-        * afterwards.  On most processors the copy is avoided since
-        * exception_thread_info == thread_info.
-        */
-       thread_info = (struct thread_info *)(regs->gpr[1] & ~(THREAD_SIZE-1));
-       exception_thread_info = current_thread_info();
-
-       if (thread_info != exception_thread_info) {
-               /* Save the original current_thread_info. */
-               memcpy(backup_current_thread_info, exception_thread_info, 
sizeof *thread_info);
-               memcpy(exception_thread_info, thread_info, sizeof *thread_info);
-       }
-
        kgdb_handle_exception(0, SIGTRAP, 0, regs);
 
-       if (thread_info != exception_thread_info)
-               /* Restore current_thread_info lastly. */
-               memcpy(exception_thread_info, backup_current_thread_info, 
sizeof *thread_info);
-
-       kfree(backup_current_thread_info);
        return 1;
 }
 
-- 
1.7.9.5

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to