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 *);