diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/include/asm/ptrace.h | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/traps.c | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h index 8c341490cfc5..cbd759e3cd78 100644 --- a/arch/powerpc/include/asm/ptrace.h +++ b/arch/powerpc/include/asm/ptrace.h | |||
@@ -140,6 +140,8 @@ extern void user_enable_single_step(struct task_struct *); | |||
140 | extern void user_enable_block_step(struct task_struct *); | 140 | extern void user_enable_block_step(struct task_struct *); |
141 | extern void user_disable_single_step(struct task_struct *); | 141 | extern void user_disable_single_step(struct task_struct *); |
142 | 142 | ||
143 | #define ARCH_HAS_USER_SINGLE_STEP_INFO | ||
144 | |||
143 | #endif /* __ASSEMBLY__ */ | 145 | #endif /* __ASSEMBLY__ */ |
144 | 146 | ||
145 | #endif /* __KERNEL__ */ | 147 | #endif /* __KERNEL__ */ |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 804f0f30f227..d069ff8a7e03 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -174,6 +174,15 @@ int die(const char *str, struct pt_regs *regs, long err) | |||
174 | return 0; | 174 | return 0; |
175 | } | 175 | } |
176 | 176 | ||
177 | void user_single_step_siginfo(struct task_struct *tsk, | ||
178 | struct pt_regs *regs, siginfo_t *info) | ||
179 | { | ||
180 | memset(info, 0, sizeof(*info)); | ||
181 | info->si_signo = SIGTRAP; | ||
182 | info->si_code = TRAP_TRACE; | ||
183 | info->si_addr = (void __user *)regs->nip; | ||
184 | } | ||
185 | |||
177 | void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) | 186 | void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) |
178 | { | 187 | { |
179 | siginfo_t info; | 188 | siginfo_t info; |