[xtensa-cvscommit] linux/arch/xtensa/kernel traps.c,1.15,1.16
Brought to you by:
zankel
|
From: <joe...@us...> - 2003-07-07 22:41:28
|
Update of /cvsroot/xtensa/linux/arch/xtensa/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv22485/arch/xtensa/kernel
Modified Files:
traps.c
Log Message:
Change user unaligned accesses from SIGSEGV to SIGBUS for more relevant signal code.
Index: traps.c
===================================================================
RCS file: /cvsroot/xtensa/linux/arch/xtensa/kernel/traps.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** traps.c 12 Jun 2003 23:44:23 -0000 1.15
--- traps.c 7 Jul 2003 22:41:25 -0000 1.16
***************
*** 289,295 ****
tsk->thread.error_code = -3; /* unaligned access, load or store */
#if 1
! printk("handle_unaligned_user(): sending SIGSEGV to %s (pid=%d)"
! " for illegal access\n"
! "(load or store) to %08x (pc == %08x, ra == %08x)\n",
tsk->comm,
tsk->pid,
--- 289,294 ----
tsk->thread.error_code = -3; /* unaligned access, load or store */
#if 1
! printk("handle_unaligned_user(): sending SIGBUS to %s (pid=%d)\n"
! "for unaligned access to %08x (pc == %08x, ra == %08x)\n",
tsk->comm,
tsk->pid,
***************
*** 298,304 ****
(regs->aregs[0] & 0x3FFFFFFF) | (regs->pc & 0xC0000000) );
#endif
! info.si_signo = SIGSEGV;
info.si_errno = 0;
! info.si_code = SEGV_ACCERR;
info.si_addr = (void *) regs->excvaddr;
force_sig_info(SIGSEGV, &info, tsk);
--- 297,303 ----
(regs->aregs[0] & 0x3FFFFFFF) | (regs->pc & 0xC0000000) );
#endif
! info.si_signo = SIGBUS;
info.si_errno = 0;
! info.si_code = BUS_ADRALN;
info.si_addr = (void *) regs->excvaddr;
force_sig_info(SIGSEGV, &info, tsk);
|