mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Don't enable interrupts for a kernel breakpoint or trace trap. Otherwise,
this negates the explicit disabling of interrupts when entering the debugger in Debugger().
This commit is contained in:
parent
393c26a080
commit
297c46b68c
3 changed files with 21 additions and 18 deletions
|
|
@ -254,18 +254,19 @@ trap(frame)
|
|||
printf(
|
||||
"pid %ld (%s): trap %d with interrupts disabled\n",
|
||||
(long)curproc->p_pid, curproc->p_comm, type);
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP)
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP) {
|
||||
/*
|
||||
* XXX not quite right, since this may be for a
|
||||
* multiple fault in user mode.
|
||||
*/
|
||||
printf("kernel trap %d with interrupts disabled\n",
|
||||
type);
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
}
|
||||
}
|
||||
|
||||
eva = 0;
|
||||
|
|
|
|||
|
|
@ -254,18 +254,19 @@ trap(frame)
|
|||
printf(
|
||||
"pid %ld (%s): trap %d with interrupts disabled\n",
|
||||
(long)curproc->p_pid, curproc->p_comm, type);
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP)
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP) {
|
||||
/*
|
||||
* XXX not quite right, since this may be for a
|
||||
* multiple fault in user mode.
|
||||
*/
|
||||
printf("kernel trap %d with interrupts disabled\n",
|
||||
type);
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
}
|
||||
}
|
||||
|
||||
eva = 0;
|
||||
|
|
|
|||
|
|
@ -254,18 +254,19 @@ trap(frame)
|
|||
printf(
|
||||
"pid %ld (%s): trap %d with interrupts disabled\n",
|
||||
(long)curproc->p_pid, curproc->p_comm, type);
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP)
|
||||
else if (type != T_BPTFLT && type != T_TRCTRAP) {
|
||||
/*
|
||||
* XXX not quite right, since this may be for a
|
||||
* multiple fault in user mode.
|
||||
*/
|
||||
printf("kernel trap %d with interrupts disabled\n",
|
||||
type);
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
/*
|
||||
* We should walk p_heldmtx here and see if any are
|
||||
* spin mutexes, and not do this if so.
|
||||
*/
|
||||
enable_intr();
|
||||
}
|
||||
}
|
||||
|
||||
eva = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue