svn commit: r253077 - head/sys/kern
Andriy Gapon
avg at FreeBSD.org
Tue Jul 9 09:01:45 UTC 2013
Author: avg
Date: Tue Jul 9 09:01:44 2013
New Revision: 253077
URL: http://svnweb.freebsd.org/changeset/base/253077
Log:
should_yield: protect from td_swvoltick being uninitialized or too stale
The distance between ticks and td_swvoltick should be calculated as
an unsigned number. Previously we could end up comparing a negative
number with hogticks in which case should_yield() would give incorrect
answer.
We should probably ensure that td_swvoltick is properly initialized.
Sponsored by: HybridCluster
MFC after: 5 days
Modified:
head/sys/kern/kern_synch.c
Modified: head/sys/kern/kern_synch.c
==============================================================================
--- head/sys/kern/kern_synch.c Tue Jul 9 08:59:39 2013 (r253076)
+++ head/sys/kern/kern_synch.c Tue Jul 9 09:01:44 2013 (r253077)
@@ -581,7 +581,7 @@ int
should_yield(void)
{
- return (ticks - curthread->td_swvoltick >= hogticks);
+ return ((unsigned int)(ticks - curthread->td_swvoltick) >= hogticks);
}
void
More information about the svn-src-all
mailing list