diff options
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r-- | arch/sparc64/kernel/entry.h | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/ptrace.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/entry.h b/arch/sparc64/kernel/entry.h index e66d94c7caff..0d0de9c32a80 100644 --- a/arch/sparc64/kernel/entry.h +++ b/arch/sparc64/kernel/entry.h @@ -1,8 +1,9 @@ #ifndef _ENTRY_H #define _ENTRY_H -#include <linux/init.h> +#include <linux/kernel.h> #include <linux/types.h> +#include <linux/init.h> extern char *sparc_cpu_type; extern char *sparc_fpu_type; @@ -13,6 +14,9 @@ extern void __init boot_cpu_id_too_large(int cpu); extern unsigned int dcache_parity_tl1_occurred; extern unsigned int icache_parity_tl1_occurred; +extern asmlinkage void syscall_trace(struct pt_regs *regs, + int syscall_exit_p); + extern void bad_trap_tl1(struct pt_regs *regs, long lvl); extern void do_fpe_common(struct pt_regs *regs); diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c index 9a1ba1fe859d..4b31d2ff69bf 100644 --- a/arch/sparc64/kernel/ptrace.c +++ b/arch/sparc64/kernel/ptrace.c @@ -35,6 +35,9 @@ #include <asm/spitfire.h> #include <asm/page.h> #include <asm/cpudata.h> +#include <asm/cacheflush.h> + +#include "entry.h" /* #define ALLOW_INIT_TRACING */ @@ -807,11 +810,14 @@ struct fps { long arch_ptrace(struct task_struct *child, long request, long addr, long data) { const struct user_regset_view *view = task_user_regset_view(child); - struct pt_regs __user *pregs = (struct pt_regs __user *) addr; unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4]; - struct fps __user *fps = (struct fps __user *) addr; + struct pt_regs __user *pregs; + struct fps __user *fps; int ret; + pregs = (struct pt_regs __user *) (unsigned long) addr; + fps = (struct fps __user *) (unsigned long) addr; + switch (request) { case PTRACE_PEEKUSR: ret = (addr != 0) ? -EIO : 0; |