|
@@ -244,9 +244,7 @@ static struct exception_info eexcept_table[128] = {
|
|
|
static void do_trap(struct exception_info *except_info, struct pt_regs *regs)
|
|
|
{
|
|
|
unsigned long addr = instruction_pointer(regs);
|
|
|
- siginfo_t info;
|
|
|
|
|
|
- clear_siginfo(&info);
|
|
|
if (except_info->code != TRAP_BRKPT)
|
|
|
pr_err("TRAP: %s PC[0x%lx] signo[%d] code[%d]\n",
|
|
|
except_info->kernel_str, regs->pc,
|
|
@@ -254,12 +252,8 @@ static void do_trap(struct exception_info *except_info, struct pt_regs *regs)
|
|
|
|
|
|
die_if_kernel(except_info->kernel_str, regs, addr);
|
|
|
|
|
|
- info.si_signo = except_info->signo;
|
|
|
- info.si_errno = 0;
|
|
|
- info.si_code = except_info->code;
|
|
|
- info.si_addr = (void __user *)addr;
|
|
|
-
|
|
|
- force_sig_info(except_info->signo, &info, current);
|
|
|
+ force_sig_fault(except_info->signo, except_info->code,
|
|
|
+ (void __user *)addr, current);
|
|
|
}
|
|
|
|
|
|
/*
|