Module Name:    src
Committed By:   dyoung
Date:           Tue Nov  3 00:29:11 UTC 2009

Modified Files:
        src/sys/kern: subr_lockdebug.c

Log Message:
Make lockdebug_lock_print(NULL, ...) dump all locks.  Now, in ddb,
'show lock 0x0' dumps all of the locks.

XXX I still need to fix 'show all lock'.


To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.41 src/sys/kern/subr_lockdebug.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/subr_lockdebug.c
diff -u src/sys/kern/subr_lockdebug.c:1.40 src/sys/kern/subr_lockdebug.c:1.41
--- src/sys/kern/subr_lockdebug.c:1.40	Mon Oct  5 23:39:27 2009
+++ src/sys/kern/subr_lockdebug.c	Tue Nov  3 00:29:11 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_lockdebug.c,v 1.40 2009/10/05 23:39:27 rmind Exp $	*/
+/*	$NetBSD: subr_lockdebug.c,v 1.41 2009/11/03 00:29:11 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_lockdebug.c,v 1.40 2009/10/05 23:39:27 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_lockdebug.c,v 1.41 2009/11/03 00:29:11 dyoung Exp $");
 
 #include "opt_ddb.h"
 
@@ -792,12 +792,18 @@
 	lockdebug_t *ld;
 
 	TAILQ_FOREACH(ld, &ld_all, ld_achain) {
-		if (ld->ld_lock == addr) {
+		if (ld->ld_lock == NULL)
+			continue;
+		if (addr == NULL || ld->ld_lock == addr) {
 			lockdebug_dump(ld, pr);
-			return;
+			if (addr != NULL)
+				return;
 		}
 	}
-	(*pr)("Sorry, no record of a lock with address %p found.\n", addr);
+	if (addr != NULL) {
+		(*pr)("Sorry, no record of a lock with address %p found.\n",
+		    addr);
+	}
 #else
 	(*pr)("Sorry, kernel not built with the LOCKDEBUG option.\n");
 #endif	/* LOCKDEBUG */

Reply via email to