diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2018-05-23 10:13:17 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2018-05-23 10:13:17 +0000 |
commit | 6fee84e35e902020deebfcef1531e24ed9ce5927 (patch) | |
tree | fb770b84e982632f313907a7cfd14608147749a1 /sys/kern/kern_switch.c | |
parent | 695a3b29fffea5fc620b94b578365835154585e0 (diff) | |
download | src-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.c | 8 |
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) |