Use KASSERTMSG so if these trigger, we can see what exactly caused them to fire.

This commit is contained in:
matt 2011-06-11 01:07:33 +00:00
parent 408fc28bdd
commit bdbb859bae
1 changed files with 14 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: kern_mutex_obj.c,v 1.3 2011/05/13 22:16:43 rmind Exp $ */
/* $NetBSD: kern_mutex_obj.c,v 1.4 2011/06/11 01:07:33 matt Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.3 2011/05/13 22:16:43 rmind Exp $");
__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.4 2011/06/11 01:07:33 matt Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@ -106,8 +106,12 @@ mutex_obj_hold(kmutex_t *lock)
{
struct kmutexobj *mo = (struct kmutexobj *)lock;
KASSERT(mo->mo_magic == MUTEX_OBJ_MAGIC);
KASSERT(mo->mo_refcnt > 0);
KASSERTMSG(mo->mo_magic == MUTEX_OBJ_MAGIC,
("%s: lock %p: mo->mo_magic (%#x) != MUTEX_OBJ_MAGIC (%#x)",
__func__, mo, mo->mo_magic, MUTEX_OBJ_MAGIC));
KASSERTMSG(mo->mo_refcnt > 0,
("%s: lock %p: mo->mo_refcnt (%#x) == 0",
__func__, mo, mo->mo_refcnt));
atomic_inc_uint(&mo->mo_refcnt);
}
@ -123,8 +127,12 @@ mutex_obj_free(kmutex_t *lock)
{
struct kmutexobj *mo = (struct kmutexobj *)lock;
KASSERT(mo->mo_magic == MUTEX_OBJ_MAGIC);
KASSERT(mo->mo_refcnt > 0);
KASSERTMSG(mo->mo_magic == MUTEX_OBJ_MAGIC,
("%s: lock %p: mo->mo_magic (%#x) != MUTEX_OBJ_MAGIC (%#x)",
__func__, mo, mo->mo_magic, MUTEX_OBJ_MAGIC));
KASSERTMSG(mo->mo_refcnt > 0,
("%s: lock %p: mo->mo_refcnt (%#x) == 0",
__func__, mo, mo->mo_refcnt));
if (atomic_dec_uint_nv(&mo->mo_refcnt) > 0) {
return false;