diff options
Diffstat (limited to 'arch/sh/kernel/ptrace_32.c')
| -rw-r--r-- | arch/sh/kernel/ptrace_32.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/sh/kernel/ptrace_32.c b/arch/sh/kernel/ptrace_32.c index fddb547f3c2b..2bc72def5cf8 100644 --- a/arch/sh/kernel/ptrace_32.c +++ b/arch/sh/kernel/ptrace_32.c | |||
| @@ -241,6 +241,29 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 241 | break; | 241 | break; |
| 242 | } | 242 | } |
| 243 | #endif | 243 | #endif |
| 244 | #ifdef CONFIG_BINFMT_ELF_FDPIC | ||
| 245 | case PTRACE_GETFDPIC: { | ||
| 246 | unsigned long tmp = 0; | ||
| 247 | |||
| 248 | switch (addr) { | ||
| 249 | case PTRACE_GETFDPIC_EXEC: | ||
| 250 | tmp = child->mm->context.exec_fdpic_loadmap; | ||
| 251 | break; | ||
| 252 | case PTRACE_GETFDPIC_INTERP: | ||
| 253 | tmp = child->mm->context.interp_fdpic_loadmap; | ||
| 254 | break; | ||
| 255 | default: | ||
| 256 | break; | ||
| 257 | } | ||
| 258 | |||
| 259 | ret = 0; | ||
| 260 | if (put_user(tmp, (unsigned long *) data)) { | ||
| 261 | ret = -EFAULT; | ||
| 262 | break; | ||
| 263 | } | ||
| 264 | break; | ||
| 265 | } | ||
| 266 | #endif | ||
| 244 | default: | 267 | default: |
| 245 | ret = ptrace_request(child, request, addr, data); | 268 | ret = ptrace_request(child, request, addr, data); |
| 246 | break; | 269 | break; |
