diff options
Diffstat (limited to 'arch/microblaze/kernel/ptrace.c')
-rw-r--r-- | arch/microblaze/kernel/ptrace.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/ptrace.c b/arch/microblaze/kernel/ptrace.c index dc03ffc8174a..6a8e0cc5c57d 100644 --- a/arch/microblaze/kernel/ptrace.c +++ b/arch/microblaze/kernel/ptrace.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <linux/uaccess.h> | 39 | #include <linux/uaccess.h> |
40 | #include <asm/asm-offsets.h> | 40 | #include <asm/asm-offsets.h> |
41 | #include <asm/cacheflush.h> | 41 | #include <asm/cacheflush.h> |
42 | #include <asm/syscall.h> | ||
42 | #include <asm/io.h> | 43 | #include <asm/io.h> |
43 | 44 | ||
44 | /* Returns the address where the register at REG_OFFS in P is stashed away. */ | 45 | /* Returns the address where the register at REG_OFFS in P is stashed away. */ |
@@ -73,7 +74,8 @@ static microblaze_reg_t *reg_save_addr(unsigned reg_offs, | |||
73 | return (microblaze_reg_t *)((char *)regs + reg_offs); | 74 | return (microblaze_reg_t *)((char *)regs + reg_offs); |
74 | } | 75 | } |
75 | 76 | ||
76 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) | 77 | long arch_ptrace(struct task_struct *child, long request, |
78 | unsigned long addr, unsigned long data) | ||
77 | { | 79 | { |
78 | int rval; | 80 | int rval; |
79 | unsigned long val = 0; | 81 | unsigned long val = 0; |
@@ -99,7 +101,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
99 | } else { | 101 | } else { |
100 | rval = -EIO; | 102 | rval = -EIO; |
101 | } | 103 | } |
102 | } else if (addr >= 0 && addr < PT_SIZE && (addr & 0x3) == 0) { | 104 | } else if (addr < PT_SIZE && (addr & 0x3) == 0) { |
103 | microblaze_reg_t *reg_addr = reg_save_addr(addr, child); | 105 | microblaze_reg_t *reg_addr = reg_save_addr(addr, child); |
104 | if (request == PTRACE_PEEKUSR) | 106 | if (request == PTRACE_PEEKUSR) |
105 | val = *reg_addr; | 107 | val = *reg_addr; |
@@ -122,7 +124,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
122 | rval = -EIO; | 124 | rval = -EIO; |
123 | 125 | ||
124 | if (rval == 0 && request == PTRACE_PEEKUSR) | 126 | if (rval == 0 && request == PTRACE_PEEKUSR) |
125 | rval = put_user(val, (unsigned long *)data); | 127 | rval = put_user(val, (unsigned long __user *)data); |
126 | break; | 128 | break; |
127 | default: | 129 | default: |
128 | rval = ptrace_request(child, request, addr, data); | 130 | rval = ptrace_request(child, request, addr, data); |