aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_switch.c
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2018-05-23 10:13:17 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2018-05-23 10:13:17 +0000
commit6fee84e35e902020deebfcef1531e24ed9ce5927 (patch)
treefb770b84e982632f313907a7cfd14608147749a1 /sys/kern/kern_switch.c
parent695a3b29fffea5fc620b94b578365835154585e0 (diff)
downloadsrc-6fee84e35e902020deebfcef1531e24ed9ce5927.tar.gz
src-6fee84e35e902020deebfcef1531e24ed9ce5927.zip
Remove incorrect owepreempt assertion added in r334062
Yet another preemption request hitting between the counter being 0 and the check being reached will result in the flag no longer being set. Note the situation was already present prior to r334062 and is harmless. Reported by: pho Reviewed by: kib
Notes
Notes: svn path=/head/; revision=334087
Diffstat (limited to 'sys/kern/kern_switch.c')
-rw-r--r--sys/kern/kern_switch.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c
index 2d2805fd7445..ee7d65d8b261 100644
--- a/sys/kern/kern_switch.c
+++ b/sys/kern/kern_switch.c
@@ -215,9 +215,13 @@ critical_exit_preempt(void)
struct thread *td;
int flags;
+ /*
+ * If td_critnest is 0, it is possible that we are going to get
+ * preempted again before reaching the code below. This happens
+ * rarely and is harmless. However, this means td_owepreempt may
+ * now be unset.
+ */
td = curthread;
- KASSERT(td->td_owepreempt != 0,
- ("critical_exit: td_owepreempt == 0"));
if (td->td_critnest != 0)
return;
if (kdb_active)