diff options
Diffstat (limited to 'arch/s390/kernel/traps.c')
-rw-r--r-- | arch/s390/kernel/traps.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 12240c03a6dd..bde1d1d59858 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -170,7 +170,7 @@ void show_stack(struct task_struct *task, unsigned long *sp) | |||
170 | */ | 170 | */ |
171 | void dump_stack(void) | 171 | void dump_stack(void) |
172 | { | 172 | { |
173 | show_stack(0, 0); | 173 | show_stack(NULL, NULL); |
174 | } | 174 | } |
175 | 175 | ||
176 | EXPORT_SYMBOL(dump_stack); | 176 | EXPORT_SYMBOL(dump_stack); |
@@ -331,9 +331,9 @@ static void inline do_trap(long interruption_code, int signr, char *str, | |||
331 | } | 331 | } |
332 | } | 332 | } |
333 | 333 | ||
334 | static inline void *get_check_address(struct pt_regs *regs) | 334 | static inline void __user *get_check_address(struct pt_regs *regs) |
335 | { | 335 | { |
336 | return (void *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN); | 336 | return (void __user *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN); |
337 | } | 337 | } |
338 | 338 | ||
339 | void do_single_step(struct pt_regs *regs) | 339 | void do_single_step(struct pt_regs *regs) |
@@ -360,7 +360,7 @@ asmlinkage void name(struct pt_regs * regs, long interruption_code) \ | |||
360 | info.si_signo = signr; \ | 360 | info.si_signo = signr; \ |
361 | info.si_errno = 0; \ | 361 | info.si_errno = 0; \ |
362 | info.si_code = sicode; \ | 362 | info.si_code = sicode; \ |
363 | info.si_addr = (void *)siaddr; \ | 363 | info.si_addr = siaddr; \ |
364 | do_trap(interruption_code, signr, str, regs, &info); \ | 364 | do_trap(interruption_code, signr, str, regs, &info); \ |
365 | } | 365 | } |
366 | 366 | ||
@@ -392,7 +392,7 @@ DO_ERROR_INFO(SIGILL, "translation exception", translation_exception, | |||
392 | ILL_ILLOPN, get_check_address(regs)) | 392 | ILL_ILLOPN, get_check_address(regs)) |
393 | 393 | ||
394 | static inline void | 394 | static inline void |
395 | do_fp_trap(struct pt_regs *regs, void *location, | 395 | do_fp_trap(struct pt_regs *regs, void __user *location, |
396 | int fpc, long interruption_code) | 396 | int fpc, long interruption_code) |
397 | { | 397 | { |
398 | siginfo_t si; | 398 | siginfo_t si; |
@@ -424,10 +424,10 @@ asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code) | |||
424 | { | 424 | { |
425 | siginfo_t info; | 425 | siginfo_t info; |
426 | __u8 opcode[6]; | 426 | __u8 opcode[6]; |
427 | __u16 *location; | 427 | __u16 __user *location; |
428 | int signal = 0; | 428 | int signal = 0; |
429 | 429 | ||
430 | location = (__u16 *) get_check_address(regs); | 430 | location = get_check_address(regs); |
431 | 431 | ||
432 | /* | 432 | /* |
433 | * We got all needed information from the lowcore and can | 433 | * We got all needed information from the lowcore and can |
@@ -559,10 +559,10 @@ DO_ERROR_INFO(SIGILL, "specification exception", specification_exception, | |||
559 | 559 | ||
560 | asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) | 560 | asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) |
561 | { | 561 | { |
562 | __u16 *location; | 562 | __u16 __user *location; |
563 | int signal = 0; | 563 | int signal = 0; |
564 | 564 | ||
565 | location = (__u16 *) get_check_address(regs); | 565 | location = get_check_address(regs); |
566 | 566 | ||
567 | /* | 567 | /* |
568 | * We got all needed information from the lowcore and can | 568 | * We got all needed information from the lowcore and can |