Use KASSERTMSG so if these trigger, we can see what exactly caused them to fire.
This commit is contained in:
parent
408fc28bdd
commit
bdbb859bae
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue