diff options
Diffstat (limited to 'arch/xtensa')
| -rw-r--r-- | arch/xtensa/kernel/ptrace.c | 17 | ||||
| -rw-r--r-- | arch/xtensa/kernel/traps.c | 1 |
2 files changed, 3 insertions, 15 deletions
diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c index 14104ff63093..06a13d9b69db 100644 --- a/arch/xtensa/kernel/ptrace.c +++ b/arch/xtensa/kernel/ptrace.c | |||
| @@ -50,18 +50,8 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 50 | switch (request) { | 50 | switch (request) { |
| 51 | case PTRACE_PEEKTEXT: /* read word at location addr. */ | 51 | case PTRACE_PEEKTEXT: /* read word at location addr. */ |
| 52 | case PTRACE_PEEKDATA: | 52 | case PTRACE_PEEKDATA: |
| 53 | { | 53 | ret = generic_ptrace_peekdata(child, addr, data); |
| 54 | unsigned long tmp; | ||
| 55 | int copied; | ||
| 56 | |||
| 57 | copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0); | ||
| 58 | ret = -EIO; | ||
| 59 | if (copied != sizeof(tmp)) | ||
| 60 | break; | ||
| 61 | ret = put_user(tmp,(unsigned long *) data); | ||
| 62 | |||
| 63 | goto out; | 54 | goto out; |
| 64 | } | ||
| 65 | 55 | ||
| 66 | /* Read the word at location addr in the USER area. */ | 56 | /* Read the word at location addr in the USER area. */ |
| 67 | 57 | ||
| @@ -138,10 +128,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 138 | 128 | ||
| 139 | case PTRACE_POKETEXT: /* write the word at location addr. */ | 129 | case PTRACE_POKETEXT: /* write the word at location addr. */ |
| 140 | case PTRACE_POKEDATA: | 130 | case PTRACE_POKEDATA: |
| 141 | if (access_process_vm(child, addr, &data, sizeof(data), 1) | 131 | ret = generic_ptrace_pokedata(child, addr, data); |
| 142 | == sizeof(data)) | ||
| 143 | break; | ||
| 144 | ret = -EIO; | ||
| 145 | goto out; | 132 | goto out; |
| 146 | 133 | ||
| 147 | case PTRACE_POKEUSR: | 134 | case PTRACE_POKEUSR: |
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c index 693ab268485e..c5e62f9d9f50 100644 --- a/arch/xtensa/kernel/traps.c +++ b/arch/xtensa/kernel/traps.c | |||
| @@ -482,6 +482,7 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
| 482 | if (!user_mode(regs)) | 482 | if (!user_mode(regs)) |
| 483 | show_stack(NULL, (unsigned long*)regs->areg[1]); | 483 | show_stack(NULL, (unsigned long*)regs->areg[1]); |
| 484 | 484 | ||
| 485 | add_taint(TAINT_DIE); | ||
| 485 | spin_unlock_irq(&die_lock); | 486 | spin_unlock_irq(&die_lock); |
| 486 | 487 | ||
| 487 | if (in_interrupt()) | 488 | if (in_interrupt()) |
