Commit 9b05a69e0534ec70bc94921936ffa05b330507cb
Committed by
Linus Torvalds
1 parent
9fed81dc40
Exists in
master
and in
39 other branches
ptrace: change signature of arch_ptrace()
Fix up the arguments to arch_ptrace() to take account of the fact that @addr and @data are now unsigned long rather than long as of a preceding patch in this series. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Cc: <linux-arch@vger.kernel.org> Acked-by: Roland McGrath <roland@redhat.com> Acked-by: David Howells <dhowells@redhat.com> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 30 changed files with 101 additions and 70 deletions Side-by-side Diff
- arch/alpha/kernel/ptrace.c
- arch/arm/kernel/ptrace.c
- arch/avr32/kernel/ptrace.c
- arch/blackfin/kernel/ptrace.c
- arch/cris/arch-v10/kernel/ptrace.c
- arch/cris/arch-v32/kernel/ptrace.c
- arch/frv/kernel/ptrace.c
- arch/h8300/kernel/ptrace.c
- arch/ia64/kernel/ptrace.c
- arch/m32r/kernel/ptrace.c
- arch/m68k/kernel/ptrace.c
- arch/m68knommu/kernel/ptrace.c
- arch/microblaze/kernel/ptrace.c
- arch/mips/kernel/ptrace.c
- arch/mn10300/kernel/ptrace.c
- arch/parisc/kernel/ptrace.c
- arch/powerpc/kernel/ptrace.c
- arch/s390/kernel/ptrace.c
- arch/score/kernel/ptrace.c
- arch/sh/kernel/ptrace_32.c
- arch/sh/kernel/ptrace_64.c
- arch/sparc/kernel/ptrace_32.c
- arch/sparc/kernel/ptrace_64.c
- arch/tile/kernel/ptrace.c
- arch/um/kernel/ptrace.c
- arch/um/sys-i386/ptrace.c
- arch/um/sys-x86_64/ptrace.c
- arch/x86/kernel/ptrace.c
- arch/xtensa/kernel/ptrace.c
- include/linux/ptrace.h
arch/alpha/kernel/ptrace.c
... | ... | @@ -269,7 +269,8 @@ |
269 | 269 | user_disable_single_step(child); |
270 | 270 | } |
271 | 271 | |
272 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
272 | +long arch_ptrace(struct task_struct *child, long request, | |
273 | + unsigned long addr, unsigned long data) | |
273 | 274 | { |
274 | 275 | unsigned long tmp; |
275 | 276 | size_t copied; |
... | ... | @@ -292,7 +293,7 @@ |
292 | 293 | case PTRACE_PEEKUSR: |
293 | 294 | force_successful_syscall_return(); |
294 | 295 | ret = get_reg(child, addr); |
295 | - DBG(DBG_MEM, ("peek $%ld->%#lx\n", addr, ret)); | |
296 | + DBG(DBG_MEM, ("peek $%lu->%#lx\n", addr, ret)); | |
296 | 297 | break; |
297 | 298 | |
298 | 299 | /* When I and D space are separate, this will have to be fixed. */ |
... | ... | @@ -302,7 +303,7 @@ |
302 | 303 | break; |
303 | 304 | |
304 | 305 | case PTRACE_POKEUSR: /* write the specified register */ |
305 | - DBG(DBG_MEM, ("poke $%ld<-%#lx\n", addr, data)); | |
306 | + DBG(DBG_MEM, ("poke $%lu<-%#lx\n", addr, data)); | |
306 | 307 | ret = put_reg(child, addr, data); |
307 | 308 | break; |
308 | 309 | default: |
arch/arm/kernel/ptrace.c
... | ... | @@ -1075,7 +1075,8 @@ |
1075 | 1075 | } |
1076 | 1076 | #endif |
1077 | 1077 | |
1078 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
1078 | +long arch_ptrace(struct task_struct *child, long request, | |
1079 | + unsigned long addr, unsigned long data) | |
1079 | 1080 | { |
1080 | 1081 | int ret; |
1081 | 1082 |
arch/avr32/kernel/ptrace.c
arch/blackfin/kernel/ptrace.c
... | ... | @@ -240,7 +240,8 @@ |
240 | 240 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); |
241 | 241 | } |
242 | 242 | |
243 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
243 | +long arch_ptrace(struct task_struct *child, long request, | |
244 | + unsigned long addr, unsigned long data) | |
244 | 245 | { |
245 | 246 | int ret; |
246 | 247 | unsigned long __user *datap = (unsigned long __user *)data; |
arch/cris/arch-v10/kernel/ptrace.c
... | ... | @@ -76,7 +76,8 @@ |
76 | 76 | * (in user space) where the result of the ptrace call is written (instead of |
77 | 77 | * being returned). |
78 | 78 | */ |
79 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
79 | +long arch_ptrace(struct task_struct *child, long request, | |
80 | + unsigned long addr, unsigned long data) | |
80 | 81 | { |
81 | 82 | int ret; |
82 | 83 | unsigned long __user *datap = (unsigned long __user *)data; |
... | ... | @@ -141,7 +142,7 @@ |
141 | 142 | break; |
142 | 143 | } |
143 | 144 | |
144 | - data += sizeof(long); | |
145 | + data += sizeof(unsigned long); | |
145 | 146 | } |
146 | 147 | |
147 | 148 | break; |
... | ... | @@ -165,7 +166,7 @@ |
165 | 166 | } |
166 | 167 | |
167 | 168 | put_reg(child, i, tmp); |
168 | - data += sizeof(long); | |
169 | + data += sizeof(unsigned long); | |
169 | 170 | } |
170 | 171 | |
171 | 172 | break; |
arch/cris/arch-v32/kernel/ptrace.c
... | ... | @@ -126,7 +126,8 @@ |
126 | 126 | } |
127 | 127 | |
128 | 128 | |
129 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
129 | +long arch_ptrace(struct task_struct *child, long request, | |
130 | + unsigned long addr, unsigned long data) | |
130 | 131 | { |
131 | 132 | int ret; |
132 | 133 | unsigned long __user *datap = (unsigned long __user *)data; |
arch/frv/kernel/ptrace.c
... | ... | @@ -254,7 +254,8 @@ |
254 | 254 | user_disable_single_step(child); |
255 | 255 | } |
256 | 256 | |
257 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
257 | +long arch_ptrace(struct task_struct *child, long request, | |
258 | + unsigned long addr, unsigned long data) | |
258 | 259 | { |
259 | 260 | unsigned long tmp; |
260 | 261 | int ret; |
arch/h8300/kernel/ptrace.c
... | ... | @@ -50,7 +50,8 @@ |
50 | 50 | user_disable_single_step(child); |
51 | 51 | } |
52 | 52 | |
53 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
53 | +long arch_ptrace(struct task_struct *child, long request, | |
54 | + unsigned long addr, unsigned long data) | |
54 | 55 | { |
55 | 56 | int ret; |
56 | 57 | |
... | ... | @@ -120,7 +121,7 @@ |
120 | 121 | ret = -EFAULT; |
121 | 122 | break; |
122 | 123 | } |
123 | - data += sizeof(long); | |
124 | + data += sizeof(unsigned long); | |
124 | 125 | } |
125 | 126 | ret = 0; |
126 | 127 | break; |
... | ... | @@ -135,7 +136,7 @@ |
135 | 136 | break; |
136 | 137 | } |
137 | 138 | h8300_put_reg(child, i, tmp); |
138 | - data += sizeof(long); | |
139 | + data += sizeof(unsigned long); | |
139 | 140 | } |
140 | 141 | ret = 0; |
141 | 142 | break; |
arch/ia64/kernel/ptrace.c
... | ... | @@ -1177,7 +1177,8 @@ |
1177 | 1177 | } |
1178 | 1178 | |
1179 | 1179 | long |
1180 | -arch_ptrace (struct task_struct *child, long request, long addr, long data) | |
1180 | +arch_ptrace (struct task_struct *child, long request, | |
1181 | + unsigned long addr, unsigned long data) | |
1181 | 1182 | { |
1182 | 1183 | switch (request) { |
1183 | 1184 | case PTRACE_PEEKTEXT: |
arch/m32r/kernel/ptrace.c
arch/m68k/kernel/ptrace.c
... | ... | @@ -156,7 +156,8 @@ |
156 | 156 | singlestep_disable(child); |
157 | 157 | } |
158 | 158 | |
159 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
159 | +long arch_ptrace(struct task_struct *child, long request, | |
160 | + unsigned long addr, unsigned long data) | |
160 | 161 | { |
161 | 162 | unsigned long tmp; |
162 | 163 | int i, ret = 0; |
... | ... | @@ -200,7 +201,7 @@ |
200 | 201 | * into internal fpu reg representation |
201 | 202 | */ |
202 | 203 | if (FPU_IS_EMU && (addr < 45) && !(addr % 3)) { |
203 | - data = (unsigned long)data << 15; | |
204 | + data <<= 15; | |
204 | 205 | data = (data & 0xffff0000) | |
205 | 206 | ((data & 0x0000ffff) >> 1); |
206 | 207 | } |
... | ... | @@ -215,7 +216,7 @@ |
215 | 216 | ret = put_user(tmp, (unsigned long *)data); |
216 | 217 | if (ret) |
217 | 218 | break; |
218 | - data += sizeof(long); | |
219 | + data += sizeof(unsigned long); | |
219 | 220 | } |
220 | 221 | break; |
221 | 222 | |
... | ... | @@ -229,7 +230,7 @@ |
229 | 230 | tmp |= get_reg(child, PT_SR) & ~SR_MASK; |
230 | 231 | } |
231 | 232 | put_reg(child, i, tmp); |
232 | - data += sizeof(long); | |
233 | + data += sizeof(unsigned long); | |
233 | 234 | } |
234 | 235 | break; |
235 | 236 |
arch/m68knommu/kernel/ptrace.c
... | ... | @@ -112,7 +112,8 @@ |
112 | 112 | user_disable_single_step(child); |
113 | 113 | } |
114 | 114 | |
115 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
115 | +long arch_ptrace(struct task_struct *child, long request, | |
116 | + unsigned long addr, unsigned long data) | |
116 | 117 | { |
117 | 118 | int ret; |
118 | 119 | |
... | ... | @@ -184,7 +185,7 @@ |
184 | 185 | ret = -EFAULT; |
185 | 186 | break; |
186 | 187 | } |
187 | - data += sizeof(long); | |
188 | + data += sizeof(unsigned long); | |
188 | 189 | } |
189 | 190 | ret = 0; |
190 | 191 | break; |
... | ... | @@ -204,7 +205,7 @@ |
204 | 205 | tmp |= get_reg(child, PT_SR) & ~(SR_MASK << 16); |
205 | 206 | } |
206 | 207 | put_reg(child, i, tmp); |
207 | - data += sizeof(long); | |
208 | + data += sizeof(unsigned long); | |
208 | 209 | } |
209 | 210 | ret = 0; |
210 | 211 | break; |
arch/microblaze/kernel/ptrace.c
... | ... | @@ -73,7 +73,8 @@ |
73 | 73 | return (microblaze_reg_t *)((char *)regs + reg_offs); |
74 | 74 | } |
75 | 75 | |
76 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
76 | +long arch_ptrace(struct task_struct *child, long request, | |
77 | + unsigned long addr, unsigned long data) | |
77 | 78 | { |
78 | 79 | int rval; |
79 | 80 | unsigned long val = 0; |
arch/mips/kernel/ptrace.c
arch/mn10300/kernel/ptrace.c
... | ... | @@ -295,7 +295,8 @@ |
295 | 295 | /* |
296 | 296 | * handle the arch-specific side of process tracing |
297 | 297 | */ |
298 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
298 | +long arch_ptrace(struct task_struct *child, long request, | |
299 | + unsigned long addr, unsigned long data) | |
299 | 300 | { |
300 | 301 | unsigned long tmp; |
301 | 302 | int ret; |
arch/parisc/kernel/ptrace.c
... | ... | @@ -110,7 +110,8 @@ |
110 | 110 | pa_psw(task)->l = 0; |
111 | 111 | } |
112 | 112 | |
113 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
113 | +long arch_ptrace(struct task_struct *child, long request, | |
114 | + unsigned long addr, unsigned long data) | |
114 | 115 | { |
115 | 116 | unsigned long tmp; |
116 | 117 | long ret = -EIO; |
... | ... | @@ -120,8 +121,8 @@ |
120 | 121 | /* Read the word at location addr in the USER area. For ptraced |
121 | 122 | processes, the kernel saves all regs on a syscall. */ |
122 | 123 | case PTRACE_PEEKUSR: |
123 | - if ((addr & (sizeof(long)-1)) || | |
124 | - (unsigned long) addr >= sizeof(struct pt_regs)) | |
124 | + if ((addr & (sizeof(unsigned long)-1)) || | |
125 | + addr >= sizeof(struct pt_regs)) | |
125 | 126 | break; |
126 | 127 | tmp = *(unsigned long *) ((char *) task_regs(child) + addr); |
127 | 128 | ret = put_user(tmp, (unsigned long *) data); |
... | ... | @@ -151,8 +152,8 @@ |
151 | 152 | break; |
152 | 153 | } |
153 | 154 | |
154 | - if ((addr & (sizeof(long)-1)) || | |
155 | - (unsigned long) addr >= sizeof(struct pt_regs)) | |
155 | + if ((addr & (sizeof(unsigned long)-1)) || | |
156 | + addr >= sizeof(struct pt_regs)) | |
156 | 157 | break; |
157 | 158 | if ((addr >= PT_GR1 && addr <= PT_GR31) || |
158 | 159 | addr == PT_IAOQ0 || addr == PT_IAOQ1 || |
arch/powerpc/kernel/ptrace.c
... | ... | @@ -1406,8 +1406,8 @@ |
1406 | 1406 | * Here are the old "legacy" powerpc specific getregs/setregs ptrace calls, |
1407 | 1407 | * we mark them as obsolete now, they will be removed in a future version |
1408 | 1408 | */ |
1409 | -static long arch_ptrace_old(struct task_struct *child, long request, long addr, | |
1410 | - long data) | |
1409 | +static long arch_ptrace_old(struct task_struct *child, long request, | |
1410 | + unsigned long addr, unsigned long data) | |
1411 | 1411 | { |
1412 | 1412 | switch (request) { |
1413 | 1413 | case PPC_PTRACE_GETREGS: /* Get GPRs 0 - 31. */ |
... | ... | @@ -1434,7 +1434,8 @@ |
1434 | 1434 | return -EPERM; |
1435 | 1435 | } |
1436 | 1436 | |
1437 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
1437 | +long arch_ptrace(struct task_struct *child, long request, | |
1438 | + unsigned long addr, unsigned long data) | |
1438 | 1439 | { |
1439 | 1440 | int ret = -EPERM; |
1440 | 1441 | |
1441 | 1442 | |
... | ... | @@ -1446,11 +1447,11 @@ |
1446 | 1447 | ret = -EIO; |
1447 | 1448 | /* convert to index and check */ |
1448 | 1449 | #ifdef CONFIG_PPC32 |
1449 | - index = (unsigned long) addr >> 2; | |
1450 | + index = addr >> 2; | |
1450 | 1451 | if ((addr & 3) || (index > PT_FPSCR) |
1451 | 1452 | || (child->thread.regs == NULL)) |
1452 | 1453 | #else |
1453 | - index = (unsigned long) addr >> 3; | |
1454 | + index = addr >> 3; | |
1454 | 1455 | if ((addr & 7) || (index > PT_FPSCR)) |
1455 | 1456 | #endif |
1456 | 1457 | break; |
1457 | 1458 | |
... | ... | @@ -1474,11 +1475,11 @@ |
1474 | 1475 | ret = -EIO; |
1475 | 1476 | /* convert to index and check */ |
1476 | 1477 | #ifdef CONFIG_PPC32 |
1477 | - index = (unsigned long) addr >> 2; | |
1478 | + index = addr >> 2; | |
1478 | 1479 | if ((addr & 3) || (index > PT_FPSCR) |
1479 | 1480 | || (child->thread.regs == NULL)) |
1480 | 1481 | #else |
1481 | - index = (unsigned long) addr >> 3; | |
1482 | + index = addr >> 3; | |
1482 | 1483 | if ((addr & 7) || (index > PT_FPSCR)) |
1483 | 1484 | #endif |
1484 | 1485 | break; |
arch/s390/kernel/ptrace.c
... | ... | @@ -343,7 +343,8 @@ |
343 | 343 | return __poke_user(child, addr, data); |
344 | 344 | } |
345 | 345 | |
346 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
346 | +long arch_ptrace(struct task_struct *child, long request, | |
347 | + unsigned long addr, unsigned long data) | |
347 | 348 | { |
348 | 349 | ptrace_area parea; |
349 | 350 | int copied, ret; |
arch/score/kernel/ptrace.c
... | ... | @@ -325,7 +325,8 @@ |
325 | 325 | } |
326 | 326 | |
327 | 327 | long |
328 | -arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
328 | +arch_ptrace(struct task_struct *child, long request, | |
329 | + unsigned long addr, unsigned long data) | |
329 | 330 | { |
330 | 331 | int ret; |
331 | 332 | unsigned long __user *datap = (void __user *)data; |
arch/sh/kernel/ptrace_32.c
... | ... | @@ -365,7 +365,8 @@ |
365 | 365 | return &user_sh_native_view; |
366 | 366 | } |
367 | 367 | |
368 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
368 | +long arch_ptrace(struct task_struct *child, long request, | |
369 | + unsigned long addr, unsigned long data) | |
369 | 370 | { |
370 | 371 | struct user * dummy = NULL; |
371 | 372 | unsigned long __user *datap = (unsigned long __user *)data; |
372 | 373 | |
373 | 374 | |
374 | 375 | |
... | ... | @@ -383,17 +384,17 @@ |
383 | 384 | |
384 | 385 | if (addr < sizeof(struct pt_regs)) |
385 | 386 | tmp = get_stack_long(child, addr); |
386 | - else if (addr >= (long) &dummy->fpu && | |
387 | - addr < (long) &dummy->u_fpvalid) { | |
387 | + else if (addr >= (unsigned long) &dummy->fpu && | |
388 | + addr < (unsigned long) &dummy->u_fpvalid) { | |
388 | 389 | if (!tsk_used_math(child)) { |
389 | - if (addr == (long)&dummy->fpu.fpscr) | |
390 | + if (addr == (unsigned long)&dummy->fpu.fpscr) | |
390 | 391 | tmp = FPSCR_INIT; |
391 | 392 | else |
392 | 393 | tmp = 0; |
393 | 394 | } else |
394 | - tmp = ((long *)child->thread.xstate) | |
395 | + tmp = ((unsigned long *)child->thread.xstate) | |
395 | 396 | [(addr - (long)&dummy->fpu) >> 2]; |
396 | - } else if (addr == (long) &dummy->u_fpvalid) | |
397 | + } else if (addr == (unsigned long) &dummy->u_fpvalid) | |
397 | 398 | tmp = !!tsk_used_math(child); |
398 | 399 | else if (addr == PT_TEXT_ADDR) |
399 | 400 | tmp = child->mm->start_code; |
400 | 401 | |
401 | 402 | |
... | ... | @@ -417,13 +418,13 @@ |
417 | 418 | |
418 | 419 | if (addr < sizeof(struct pt_regs)) |
419 | 420 | ret = put_stack_long(child, addr, data); |
420 | - else if (addr >= (long) &dummy->fpu && | |
421 | - addr < (long) &dummy->u_fpvalid) { | |
421 | + else if (addr >= (unsigned long) &dummy->fpu && | |
422 | + addr < (unsigned long) &dummy->u_fpvalid) { | |
422 | 423 | set_stopped_child_used_math(child); |
423 | - ((long *)child->thread.xstate) | |
424 | + ((unsigned long *)child->thread.xstate) | |
424 | 425 | [(addr - (long)&dummy->fpu) >> 2] = data; |
425 | 426 | ret = 0; |
426 | - } else if (addr == (long) &dummy->u_fpvalid) { | |
427 | + } else if (addr == (unsigned long) &dummy->u_fpvalid) { | |
427 | 428 | conditional_stopped_child_used_math(data, child); |
428 | 429 | ret = 0; |
429 | 430 | } |
arch/sh/kernel/ptrace_64.c
... | ... | @@ -383,7 +383,8 @@ |
383 | 383 | return &user_sh64_native_view; |
384 | 384 | } |
385 | 385 | |
386 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
386 | +long arch_ptrace(struct task_struct *child, long request, | |
387 | + unsigned long addr, unsigned long data) | |
387 | 388 | { |
388 | 389 | int ret; |
389 | 390 | |
... | ... | @@ -471,7 +472,8 @@ |
471 | 472 | return ret; |
472 | 473 | } |
473 | 474 | |
474 | -asmlinkage int sh64_ptrace(long request, long pid, long addr, long data) | |
475 | +asmlinkage int sh64_ptrace(long request, long pid, | |
476 | + unsigned long addr, unsigned long data) | |
475 | 477 | { |
476 | 478 | #define WPC_DBRMODE 0x0d104008 |
477 | 479 | static unsigned long first_call; |
arch/sparc/kernel/ptrace_32.c
... | ... | @@ -323,7 +323,8 @@ |
323 | 323 | return &user_sparc32_view; |
324 | 324 | } |
325 | 325 | |
326 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
326 | +long arch_ptrace(struct task_struct *child, long request, | |
327 | + unsigned long addr, unsigned long data) | |
327 | 328 | { |
328 | 329 | unsigned long addr2 = current->thread.kregs->u_regs[UREG_I4]; |
329 | 330 | const struct user_regset_view *view; |
arch/sparc/kernel/ptrace_64.c
... | ... | @@ -969,7 +969,8 @@ |
969 | 969 | unsigned long fsr; |
970 | 970 | }; |
971 | 971 | |
972 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
972 | +long arch_ptrace(struct task_struct *child, long request, | |
973 | + unsigned long addr, unsigned long data) | |
973 | 974 | { |
974 | 975 | const struct user_regset_view *view = task_user_regset_view(current); |
975 | 976 | unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4]; |
... | ... | @@ -977,8 +978,8 @@ |
977 | 978 | struct fps __user *fps; |
978 | 979 | int ret; |
979 | 980 | |
980 | - pregs = (struct pt_regs __user *) (unsigned long) addr; | |
981 | - fps = (struct fps __user *) (unsigned long) addr; | |
981 | + pregs = (struct pt_regs __user *) addr; | |
982 | + fps = (struct fps __user *) addr; | |
982 | 983 | |
983 | 984 | switch (request) { |
984 | 985 | case PTRACE_PEEKUSR: |
arch/tile/kernel/ptrace.c
... | ... | @@ -45,7 +45,8 @@ |
45 | 45 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); |
46 | 46 | } |
47 | 47 | |
48 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
48 | +long arch_ptrace(struct task_struct *child, long request, | |
49 | + unsigned long addr, unsigned long data) | |
49 | 50 | { |
50 | 51 | unsigned long __user *datap = (long __user __force *)data; |
51 | 52 | unsigned long tmp; |
... | ... | @@ -98,7 +99,8 @@ |
98 | 99 | if (!access_ok(VERIFY_WRITE, datap, PTREGS_SIZE)) |
99 | 100 | break; |
100 | 101 | childregs = (long *)task_pt_regs(child); |
101 | - for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i) { | |
102 | + for (i = 0; i < sizeof(struct pt_regs)/sizeof(unsigned long); | |
103 | + ++i) { | |
102 | 104 | ret = __put_user(childregs[i], &datap[i]); |
103 | 105 | if (ret != 0) |
104 | 106 | break; |
... | ... | @@ -109,7 +111,8 @@ |
109 | 111 | if (!access_ok(VERIFY_READ, datap, PTREGS_SIZE)) |
110 | 112 | break; |
111 | 113 | childregs = (long *)task_pt_regs(child); |
112 | - for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i) { | |
114 | + for (i = 0; i < sizeof(struct pt_regs)/sizeof(unsigned long); | |
115 | + ++i) { | |
113 | 116 | ret = __get_user(childregs[i], &datap[i]); |
114 | 117 | if (ret != 0) |
115 | 118 | break; |
arch/um/kernel/ptrace.c
... | ... | @@ -42,10 +42,11 @@ |
42 | 42 | extern int peek_user(struct task_struct * child, long addr, long data); |
43 | 43 | extern int poke_user(struct task_struct * child, long addr, long data); |
44 | 44 | |
45 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
45 | +long arch_ptrace(struct task_struct *child, long request, | |
46 | + unsigned long addr, unsigned long data) | |
46 | 47 | { |
47 | 48 | int i, ret; |
48 | - unsigned long __user *p = (void __user *)(unsigned long)data; | |
49 | + unsigned long __user *p = (void __user *)data; | |
49 | 50 | |
50 | 51 | switch (request) { |
51 | 52 | /* read word at location addr. */ |
arch/um/sys-i386/ptrace.c
... | ... | @@ -203,8 +203,8 @@ |
203 | 203 | (unsigned long *) &fpregs); |
204 | 204 | } |
205 | 205 | |
206 | -long subarch_ptrace(struct task_struct *child, long request, long addr, | |
207 | - long data) | |
206 | +long subarch_ptrace(struct task_struct *child, long request, | |
207 | + unsigned long addr, unsigned long data) | |
208 | 208 | { |
209 | 209 | return -EIO; |
210 | 210 | } |
arch/um/sys-x86_64/ptrace.c
... | ... | @@ -175,8 +175,8 @@ |
175 | 175 | return restore_fp_registers(userspace_pid[cpu], fpregs); |
176 | 176 | } |
177 | 177 | |
178 | -long subarch_ptrace(struct task_struct *child, long request, long addr, | |
179 | - long data) | |
178 | +long subarch_ptrace(struct task_struct *child, long request, | |
179 | + unsigned long addr, unsigned long data) | |
180 | 180 | { |
181 | 181 | int ret = -EIO; |
182 | 182 |
arch/x86/kernel/ptrace.c
... | ... | @@ -801,7 +801,8 @@ |
801 | 801 | static const struct user_regset_view user_x86_32_view; /* Initialized below. */ |
802 | 802 | #endif |
803 | 803 | |
804 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
804 | +long arch_ptrace(struct task_struct *child, long request, | |
805 | + unsigned long addr, unsigned long data) | |
805 | 806 | { |
806 | 807 | int ret; |
807 | 808 | unsigned long __user *datap = (unsigned long __user *)data; |
808 | 809 | |
... | ... | @@ -888,14 +889,14 @@ |
888 | 889 | |
889 | 890 | #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION |
890 | 891 | case PTRACE_GET_THREAD_AREA: |
891 | - if (addr < 0) | |
892 | + if ((int) addr < 0) | |
892 | 893 | return -EIO; |
893 | 894 | ret = do_get_thread_area(child, addr, |
894 | 895 | (struct user_desc __user *) data); |
895 | 896 | break; |
896 | 897 | |
897 | 898 | case PTRACE_SET_THREAD_AREA: |
898 | - if (addr < 0) | |
899 | + if ((int) addr < 0) | |
899 | 900 | return -EIO; |
900 | 901 | ret = do_set_thread_area(child, addr, |
901 | 902 | (struct user_desc __user *) data, 0); |
arch/xtensa/kernel/ptrace.c
... | ... | @@ -256,7 +256,8 @@ |
256 | 256 | return 0; |
257 | 257 | } |
258 | 258 | |
259 | -long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |
259 | +long arch_ptrace(struct task_struct *child, long request, | |
260 | + unsigned long addr, unsigned long data) | |
260 | 261 | { |
261 | 262 | int ret = -EPERM; |
262 | 263 |
include/linux/ptrace.h
... | ... | @@ -100,7 +100,8 @@ |
100 | 100 | #include <linux/sched.h> /* For struct task_struct. */ |
101 | 101 | |
102 | 102 | |
103 | -extern long arch_ptrace(struct task_struct *child, long request, long addr, long data); | |
103 | +extern long arch_ptrace(struct task_struct *child, long request, | |
104 | + unsigned long addr, unsigned long data); | |
104 | 105 | extern int ptrace_traceme(void); |
105 | 106 | extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len); |
106 | 107 | extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len); |