diff options
Diffstat (limited to 'sys/kern/subr_trap.c')
-rw-r--r-- | sys/kern/subr_trap.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index fa768ec..5974535 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -164,6 +164,10 @@ static int panic_on_nmi = 1; SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RW, &panic_on_nmi, 0, "Panic on NMI"); +#ifdef WITNESS +extern char *syscallnames[]; +#endif + static __inline int userret(p, frame, oticks, have_giant) struct proc *p; @@ -1221,6 +1225,12 @@ bad: mtx_assert(&sched_lock, MA_NOTOWNED); mtx_assert(&Giant, MA_NOTOWNED); +#ifdef WITNESS + if (witness_list(p)) { + panic("system call %s returning with mutex(s) held\n", + syscallnames[code]); + } +#endif } void |