diff options
author | Roland McGrath <roland@redhat.com> | 2008-01-30 07:30:51 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:51 -0500 |
commit | d6f4fb7558ee8138fe86e2778bc16e3794d0baa2 (patch) | |
tree | 6726d9e2290cbd698eb3c7ba6fe53041b6de74ed /arch/powerpc/kernel/ptrace.c | |
parent | 2a84b0d71973692b291f03a870c4d0d13f722d79 (diff) |
powerpc: ptrace generic resume
This removes the handling for PTRACE_CONT et al from the powerpc
ptrace code, so it uses the new generic code via ptrace_request.
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/powerpc/kernel/ptrace.c')
-rw-r--r-- | arch/powerpc/kernel/ptrace.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index b970d7971779..8b056d2295cc 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -445,52 +445,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
445 | break; | 445 | break; |
446 | } | 446 | } |
447 | 447 | ||
448 | case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ | ||
449 | case PTRACE_CONT: { /* restart after signal. */ | ||
450 | ret = -EIO; | ||
451 | if (!valid_signal(data)) | ||
452 | break; | ||
453 | if (request == PTRACE_SYSCALL) | ||
454 | set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
455 | else | ||
456 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
457 | child->exit_code = data; | ||
458 | /* make sure the single step bit is not set. */ | ||
459 | user_disable_single_step(child); | ||
460 | wake_up_process(child); | ||
461 | ret = 0; | ||
462 | break; | ||
463 | } | ||
464 | |||
465 | /* | ||
466 | * make the child exit. Best I can do is send it a sigkill. | ||
467 | * perhaps it should be put in the status that it wants to | ||
468 | * exit. | ||
469 | */ | ||
470 | case PTRACE_KILL: { | ||
471 | ret = 0; | ||
472 | if (child->exit_state == EXIT_ZOMBIE) /* already dead */ | ||
473 | break; | ||
474 | child->exit_code = SIGKILL; | ||
475 | /* make sure the single step bit is not set. */ | ||
476 | user_disable_single_step(child); | ||
477 | wake_up_process(child); | ||
478 | break; | ||
479 | } | ||
480 | |||
481 | case PTRACE_SINGLESTEP: { /* set the trap flag. */ | ||
482 | ret = -EIO; | ||
483 | if (!valid_signal(data)) | ||
484 | break; | ||
485 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
486 | user_enable_single_step(child); | ||
487 | child->exit_code = data; | ||
488 | /* give it a chance to run. */ | ||
489 | wake_up_process(child); | ||
490 | ret = 0; | ||
491 | break; | ||
492 | } | ||
493 | |||
494 | case PTRACE_GET_DEBUGREG: { | 448 | case PTRACE_GET_DEBUGREG: { |
495 | ret = -EINVAL; | 449 | ret = -EINVAL; |
496 | /* We only support one DABR and no IABRS at the moment */ | 450 | /* We only support one DABR and no IABRS at the moment */ |