diff options
author | bde <bde@FreeBSD.org> | 2003-03-24 10:17:14 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2003-03-24 10:17:14 +0000 |
commit | 79afd37295979afa452a4b5ed75ac6a74f9569fe (patch) | |
tree | 4b95fc998041d683ead48a7c799ac1e529d0f525 /usr.bin/ipcs | |
parent | 97be9a96e65371bca742adf3199022c9e8bf0aeb (diff) | |
download | FreeBSD-src-79afd37295979afa452a4b5ed75ac6a74f9569fe.zip FreeBSD-src-79afd37295979afa452a4b5ed75ac6a74f9569fe.tar.gz |
Disable interrupts while in kdb_trap() to handle cases where the caller
doesn't do it. This fixes all known causes of "Context switches not
allowed in the debugger" in mi_switch(). The main cause was trap_fatal()
calling kdb_trap() with interrupts enabled. Switching to ithreads for
interrupt handling then made fatal traps more fatal and harder to debug.
The problem was limited in -current because most interrupt handlers are
blocked by Giant, but it occurred almost deterministically for me because
my clock interrupt handlers are non-fast and not blocked by Giant.
Diffstat (limited to 'usr.bin/ipcs')
0 files changed, 0 insertions, 0 deletions