aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/fault.c')
-rw-r--r--arch/arm/mm/fault.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada23d0a..32034543f49c 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -163,6 +163,8 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
163{ 163{
164 struct siginfo si; 164 struct siginfo si;
165 165
166 clear_siginfo(&si);
167
166#ifdef CONFIG_DEBUG_USER 168#ifdef CONFIG_DEBUG_USER
167 if (((user_debug & UDBG_SEGV) && (sig == SIGSEGV)) || 169 if (((user_debug & UDBG_SEGV) && (sig == SIGSEGV)) ||
168 ((user_debug & UDBG_BUS) && (sig == SIGBUS))) { 170 ((user_debug & UDBG_BUS) && (sig == SIGBUS))) {
@@ -557,6 +559,7 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
557 inf->name, fsr, addr); 559 inf->name, fsr, addr);
558 show_pte(current->mm, addr); 560 show_pte(current->mm, addr);
559 561
562 clear_siginfo(&info);
560 info.si_signo = inf->sig; 563 info.si_signo = inf->sig;
561 info.si_errno = 0; 564 info.si_errno = 0;
562 info.si_code = inf->code; 565 info.si_code = inf->code;
@@ -589,6 +592,7 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
589 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n", 592 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
590 inf->name, ifsr, addr); 593 inf->name, ifsr, addr);
591 594
595 clear_siginfo(&info);
592 info.si_signo = inf->sig; 596 info.si_signo = inf->sig;
593 info.si_errno = 0; 597 info.si_errno = 0;
594 info.si_code = inf->code; 598 info.si_code = inf->code;