Set si_trapno to the fault index from fsr.
Reviewed by: kib Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D25772
This commit is contained in:
parent
c294dddb03
commit
91371fbcf6
@ -169,7 +169,8 @@ static const struct abort aborts[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static __inline void
|
static __inline void
|
||||||
call_trapsignal(struct thread *td, int sig, int code, vm_offset_t addr)
|
call_trapsignal(struct thread *td, int sig, int code, vm_offset_t addr,
|
||||||
|
int trapno)
|
||||||
{
|
{
|
||||||
ksiginfo_t ksi;
|
ksiginfo_t ksi;
|
||||||
|
|
||||||
@ -185,6 +186,7 @@ call_trapsignal(struct thread *td, int sig, int code, vm_offset_t addr)
|
|||||||
ksi.ksi_signo = sig;
|
ksi.ksi_signo = sig;
|
||||||
ksi.ksi_code = code;
|
ksi.ksi_code = code;
|
||||||
ksi.ksi_addr = (void *)addr;
|
ksi.ksi_addr = (void *)addr;
|
||||||
|
ksi.ksi_trapno = trapno;
|
||||||
trapsignal(td, &ksi);
|
trapsignal(td, &ksi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +254,7 @@ abort_debug(struct trapframe *tf, u_int fsr, u_int prefetch, bool usermode,
|
|||||||
struct thread *td;
|
struct thread *td;
|
||||||
|
|
||||||
td = curthread;
|
td = curthread;
|
||||||
call_trapsignal(td, SIGTRAP, TRAP_BRKPT, far);
|
call_trapsignal(td, SIGTRAP, TRAP_BRKPT, far, FAULT_DEBUG);
|
||||||
userret(td, tf);
|
userret(td, tf);
|
||||||
} else {
|
} else {
|
||||||
#ifdef KDB
|
#ifdef KDB
|
||||||
@ -523,7 +525,7 @@ nogo:
|
|||||||
ksig.addr = far;
|
ksig.addr = far;
|
||||||
|
|
||||||
do_trapsignal:
|
do_trapsignal:
|
||||||
call_trapsignal(td, ksig.sig, ksig.code, ksig.addr);
|
call_trapsignal(td, ksig.sig, ksig.code, ksig.addr, idx);
|
||||||
out:
|
out:
|
||||||
if (usermode)
|
if (usermode)
|
||||||
userret(td, tf);
|
userret(td, tf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user