Module Name: src Committed By: ad Date: Thu Nov 21 19:47:21 UTC 2019
Modified Files: src/sys/kern: kern_lwp.c src/sys/sys: lwp.h Log Message: lwp_setlock(): return pointer to the kmutex_t that we replaced To generate a diff of this commit: cvs rdiff -u -r1.210 -r1.211 src/sys/kern/kern_lwp.c cvs rdiff -u -r1.188 -r1.189 src/sys/sys/lwp.h 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_lwp.c diff -u src/sys/kern/kern_lwp.c:1.210 src/sys/kern/kern_lwp.c:1.211 --- src/sys/kern/kern_lwp.c:1.210 Thu Nov 21 18:22:05 2019 +++ src/sys/kern/kern_lwp.c Thu Nov 21 19:47:21 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_lwp.c,v 1.210 2019/11/21 18:22:05 ad Exp $ */ +/* $NetBSD: kern_lwp.c,v 1.211 2019/11/21 19:47:21 ad Exp $ */ /*- * Copyright (c) 2001, 2006, 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. @@ -211,7 +211,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.210 2019/11/21 18:22:05 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.211 2019/11/21 19:47:21 ad Exp $"); #include "opt_ddb.h" #include "opt_lockdebug.h" @@ -1475,14 +1475,16 @@ lwp_locked(struct lwp *l, kmutex_t *mtx) /* * Lend a new mutex to an LWP. The old mutex must be held. */ -void +kmutex_t * lwp_setlock(struct lwp *l, kmutex_t *mtx) { + kmutex_t *oldmtx = l->l_mutex; - KASSERT(mutex_owned(l->l_mutex)); + KASSERT(mutex_owned(oldmtx)); membar_exit(); l->l_mutex = mtx; + return oldmtx; } /* @@ -1517,11 +1519,11 @@ lwp_trylock(struct lwp *l) } void -lwp_unsleep(lwp_t *l, bool cleanup) +lwp_unsleep(lwp_t *l, bool unlock) { KASSERT(mutex_owned(l->l_mutex)); - (*l->l_syncobj->sobj_unsleep)(l, cleanup); + (*l->l_syncobj->sobj_unsleep)(l, unlock); } /* Index: src/sys/sys/lwp.h diff -u src/sys/sys/lwp.h:1.188 src/sys/sys/lwp.h:1.189 --- src/sys/sys/lwp.h:1.188 Thu Nov 14 16:23:53 2019 +++ src/sys/sys/lwp.h Thu Nov 21 19:47:21 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: lwp.h,v 1.188 2019/11/14 16:23:53 maxv Exp $ */ +/* $NetBSD: lwp.h,v 1.189 2019/11/21 19:47:21 ad Exp $ */ /* * Copyright (c) 2001, 2006, 2007, 2008, 2009, 2010 @@ -326,7 +326,7 @@ void lwp_startup(lwp_t *, lwp_t *); void startlwp(void *); int lwp_locked(lwp_t *, kmutex_t *); -void lwp_setlock(lwp_t *, kmutex_t *); +kmutex_t *lwp_setlock(lwp_t *, kmutex_t *); void lwp_unlock_to(lwp_t *, kmutex_t *); int lwp_trylock(lwp_t *); void lwp_addref(lwp_t *);