KASSERT we don't return back to userspace with the kernel lock held.
This commit is contained in:
parent
f4518bc90a
commit
0de1b73a11
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: scheduler.c,v 1.23 2010/12/01 20:29:56 pooka Exp $ */
|
/* $NetBSD: scheduler.c,v 1.24 2011/01/11 10:49:20 pooka Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2010 Antti Kantee. All Rights Reserved.
|
* Copyright (c) 2010 Antti Kantee. All Rights Reserved.
|
||||||
@ -26,7 +26,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: scheduler.c,v 1.23 2010/12/01 20:29:56 pooka Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: scheduler.c,v 1.24 2011/01/11 10:49:20 pooka Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/atomic.h>
|
#include <sys/atomic.h>
|
||||||
@ -349,9 +349,14 @@ rump_schedule_cpu_interlock(struct lwp *l, void *interlock)
|
|||||||
void
|
void
|
||||||
rump_unschedule()
|
rump_unschedule()
|
||||||
{
|
{
|
||||||
struct lwp *l;
|
struct lwp *l = rumpuser_get_curlwp();
|
||||||
|
#ifdef DIAGNOSTIC
|
||||||
|
int nlock;
|
||||||
|
|
||||||
|
KERNEL_UNLOCK_ALL(l, &nlock);
|
||||||
|
KASSERT(nlock == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
l = rumpuser_get_curlwp();
|
|
||||||
KASSERT(l->l_mutex == l->l_cpu->ci_schedstate.spc_mutex);
|
KASSERT(l->l_mutex == l->l_cpu->ci_schedstate.spc_mutex);
|
||||||
rump_unschedule_cpu(l);
|
rump_unschedule_cpu(l);
|
||||||
l->l_mutex = NULL;
|
l->l_mutex = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user