diff options
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r-- | kernel/ptrace.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 6af9cdd558b7..4b4f72084d1b 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c | |||
@@ -594,6 +594,26 @@ int ptrace_request(struct task_struct *child, long request, | |||
594 | ret = ptrace_detach(child, data); | 594 | ret = ptrace_detach(child, data); |
595 | break; | 595 | break; |
596 | 596 | ||
597 | #ifdef CONFIG_BINFMT_ELF_FDPIC | ||
598 | case PTRACE_GETFDPIC: { | ||
599 | unsigned long tmp = 0; | ||
600 | |||
601 | switch (addr) { | ||
602 | case PTRACE_GETFDPIC_EXEC: | ||
603 | tmp = child->mm->context.exec_fdpic_loadmap; | ||
604 | break; | ||
605 | case PTRACE_GETFDPIC_INTERP: | ||
606 | tmp = child->mm->context.interp_fdpic_loadmap; | ||
607 | break; | ||
608 | default: | ||
609 | break; | ||
610 | } | ||
611 | |||
612 | ret = put_user(tmp, (unsigned long __user *) data); | ||
613 | break; | ||
614 | } | ||
615 | #endif | ||
616 | |||
597 | #ifdef PTRACE_SINGLESTEP | 617 | #ifdef PTRACE_SINGLESTEP |
598 | case PTRACE_SINGLESTEP: | 618 | case PTRACE_SINGLESTEP: |
599 | #endif | 619 | #endif |