* 'Traps.c' handles hardware traps and faults after we have saved some
* state in 'asm.s'.
*/
+#include <linux/config.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/string.h>
unsigned long *stack;
int i;
+ // debugging aid: "show_stack(NULL);" prints the
+ // back trace for this cpu.
+
if (!sp)
- stack = task ? (unsigned long *) task->thread.ksp : __r15;
- else
- stack = sp;
+ sp = task ? (unsigned long *) task->thread.ksp : __r15;
+ stack = sp;
for (i = 0; i < kstack_depth_to_print; i++) {
if (((addr_t) stack & (THREAD_SIZE-1)) == 0)
break;
*/
void dump_stack(void)
{
- show_stack(NULL, NULL);
+ show_stack(0, 0);
}
EXPORT_SYMBOL(dump_stack);
}
}
-static inline void __user *get_check_address(struct pt_regs *regs)
+static inline void *get_check_address(struct pt_regs *regs)
{
- return (void __user *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN);
+ return (void *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN);
}
void do_single_step(struct pt_regs *regs)
info.si_signo = signr; \
info.si_errno = 0; \
info.si_code = sicode; \
- info.si_addr = siaddr; \
+ info.si_addr = (void *)siaddr; \
do_trap(interruption_code, signr, str, regs, &info); \
}
ILL_ILLOPN, get_check_address(regs))
static inline void
-do_fp_trap(struct pt_regs *regs, void __user *location,
+do_fp_trap(struct pt_regs *regs, void *location,
int fpc, long interruption_code)
{
siginfo_t si;
{
siginfo_t info;
__u8 opcode[6];
- __u16 __user *location;
+ __u16 *location;
int signal = 0;
- location = get_check_address(regs);
+ location = (__u16 *) get_check_address(regs);
/*
* We got all needed information from the lowcore and can
asmlinkage void data_exception(struct pt_regs * regs, long interruption_code)
{
- __u16 __user *location;
+ __u16 *location;
int signal = 0;
- location = get_check_address(regs);
+ location = (__u16 *) get_check_address(regs);
/*
* We got all needed information from the lowcore and can