Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e8d3210 authored by Barry Song's avatar Barry Song Committed by Mike Frysinger
Browse files

Blackfin: fill out the signal si_addr when sending a SIGBUS/SIGSEGV



Some userspace applications use this member in diagnosing crashes.  It
also makes some LTP tests pass (i.e. the Blackfin arch behaves more like
everyone else).

Signed-off-by: default avatarBarry Song <barry.song@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 0531c467
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -260,9 +260,7 @@ asmlinkage notrace void trap_c(struct pt_regs *fp)
#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON
	int j;
#endif
#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
	unsigned int cpu = raw_smp_processor_id();
#endif
	const char *strerror = NULL;
	int sig = 0;
	siginfo_t info;
@@ -651,7 +649,17 @@ asmlinkage notrace void trap_c(struct pt_regs *fp)
	{
		info.si_signo = sig;
		info.si_errno = 0;
		switch (trapnr) {
		case VEC_CPLB_VL:
		case VEC_MISALI_D:
		case VEC_CPLB_M:
		case VEC_CPLB_MHIT:
			info.si_addr = (void __user *)cpu_pda[cpu].dcplb_fault_addr;
			break;
		default:
			info.si_addr = (void __user *)fp->pc;
			break;
		}
		force_sig_info(sig, &info, current);
	}