Module Name: src Committed By: ad Date: Mon Jan 27 21:09:33 UTC 2020
Modified Files: src/sys/kern: kern_exit.c Log Message: - exit1(): for DIAGNOSTIC, call kernel_lock_plug_leak() (temporary). - exit_lwps(): call lwp_need_userret() or LWP might never notice. To generate a diff of this commit: cvs rdiff -u -r1.280 -r1.281 src/sys/kern/kern_exit.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/kern_exit.c diff -u src/sys/kern/kern_exit.c:1.280 src/sys/kern/kern_exit.c:1.281 --- src/sys/kern/kern_exit.c:1.280 Wed Jan 22 12:23:04 2020 +++ src/sys/kern/kern_exit.c Mon Jan 27 21:09:33 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exit.c,v 1.280 2020/01/22 12:23:04 ad Exp $ */ +/* $NetBSD: kern_exit.c,v 1.281 2020/01/27 21:09:33 ad Exp $ */ /*- * Copyright (c) 1998, 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.280 2020/01/22 12:23:04 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.281 2020/01/27 21:09:33 ad Exp $"); #include "opt_ktrace.h" #include "opt_dtrace.h" @@ -99,6 +99,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_exit.c, #include <sys/syscallargs.h> #include <sys/kauth.h> #include <sys/sleepq.h> +#include <sys/lock.h> #include <sys/lockdebug.h> #include <sys/ktrace.h> #include <sys/cpu.h> @@ -204,6 +205,9 @@ exit1(struct lwp *l, int exitcode, int s p = l->l_proc; + /* XXX Temporary. */ + kernel_lock_plug_leak(); + /* Verify that we hold no locks other than p->p_lock. */ LOCKDEBUG_BARRIER(p->p_lock, 0); KASSERTMSG(curcpu()->ci_biglock_count == 0, "kernel_lock leaked"); @@ -617,6 +621,7 @@ retry: setrunnable(l2); continue; } + lwp_need_userret(l2); lwp_unlock(l2); }