diff options
author | Andriy Gapon <avg@FreeBSD.org> | 2011-12-04 21:27:41 +0000 |
---|---|---|
committer | Andriy Gapon <avg@FreeBSD.org> | 2011-12-04 21:27:41 +0000 |
commit | 5e27a60372eac27bb8a30dd363b2e0986aa564f6 (patch) | |
tree | 8c1a207ddd0410168b89a2c2a432d5df04086663 /sys/kern/kern_switch.c | |
parent | 0f60ecdaa4965d11cf7c8fb8ad9c14746eec94d2 (diff) | |
download | src-5e27a60372eac27bb8a30dd363b2e0986aa564f6.tar.gz src-5e27a60372eac27bb8a30dd363b2e0986aa564f6.zip |
critical_exit: ignore td_owepreempt if kdb_active is set
calling mi_switch in such a context results in a recursion via
kdb_switch
Suggested by: jhb
Reviewed by: jhb
MFC after: 5 weeks
Notes
Notes:
svn path=/head/; revision=228265
Diffstat (limited to 'sys/kern/kern_switch.c')
-rw-r--r-- | sys/kern/kern_switch.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c index 93cbf7b54db4..885dc22cea76 100644 --- a/sys/kern/kern_switch.c +++ b/sys/kern/kern_switch.c @@ -200,7 +200,7 @@ critical_exit(void) if (td->td_critnest == 1) { td->td_critnest = 0; - if (td->td_owepreempt) { + if (td->td_owepreempt && !kdb_active) { td->td_critnest = 1; thread_lock(td); td->td_critnest--; |