diff options
author | avg <avg@FreeBSD.org> | 2010-06-17 10:15:13 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2010-06-17 10:15:13 +0000 |
commit | 9f2d4c3357718975468ee4d1f2479c9dd704adfd (patch) | |
tree | ebc558d2717a297807438195c8fd3741b57ccf58 /sys/kern | |
parent | 70171ee94e167f43cca27a9c511c13d625606628 (diff) | |
download | FreeBSD-src-9f2d4c3357718975468ee4d1f2479c9dd704adfd.zip FreeBSD-src-9f2d4c3357718975468ee4d1f2479c9dd704adfd.tar.gz |
lock_profile_release_lock: do not compare unsigned with zero
Found by: Coverity Prevent
CID: 3660
Reviewed by: jhb
MFC after: 2 weeks
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/subr_lock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/subr_lock.c b/sys/kern/subr_lock.c index bc43c9c..e09638e 100644 --- a/sys/kern/subr_lock.c +++ b/sys/kern/subr_lock.c @@ -598,7 +598,7 @@ lock_profile_release_lock(struct lock_object *lo) struct lock_profile_object *l; struct lock_prof_type *type; struct lock_prof *lp; - u_int64_t holdtime; + u_int64_t curtime, holdtime; struct lpohead *head; int spin; @@ -626,9 +626,11 @@ lock_profile_release_lock(struct lock_object *lo) lp = lock_profile_lookup(lo, spin, l->lpo_file, l->lpo_line); if (lp == NULL) goto release; - holdtime = nanoseconds() - l->lpo_acqtime; - if (holdtime < 0) + curtime = nanoseconds(); + if (curtime < l->lpo_acqtime) goto release; + holdtime = curtime - l->lpo_acqtime; + /* * Record if the lock has been held longer now than ever * before. |