Module Name: src Committed By: pooka Date: Tue Jun 9 15:53:05 UTC 2009
Modified Files: src/sys/rump/librump/rumpkern: ltsleep.c Log Message: simplelocks have been supported in rump for a while, allow their use. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/rump/librump/rumpkern/ltsleep.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/rump/librump/rumpkern/ltsleep.c diff -u src/sys/rump/librump/rumpkern/ltsleep.c:1.12 src/sys/rump/librump/rumpkern/ltsleep.c:1.13 --- src/sys/rump/librump/rumpkern/ltsleep.c:1.12 Wed Jun 3 15:16:42 2009 +++ src/sys/rump/librump/rumpkern/ltsleep.c Tue Jun 9 15:53:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ltsleep.c,v 1.12 2009/06/03 15:16:42 pooka Exp $ */ +/* $NetBSD: ltsleep.c,v 1.13 2009/06/09 15:53:05 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ltsleep.c,v 1.12 2009/06/03 15:16:42 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ltsleep.c,v 1.13 2009/06/09 15:53:05 pooka Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -57,13 +57,11 @@ { struct ltsleeper lts; - if (__predict_false(slock)) - panic("simplelock not supported by rump, convert code"); - lts.id = ident; cv_init(<s.cv, NULL); mutex_enter(&sleepermtx); + simple_unlock(slock); LIST_INSERT_HEAD(&sleepers, <s, entries); /* protected by sleepermtx */ @@ -74,6 +72,9 @@ cv_destroy(<s.cv); + if (slock && (prio & PNORELOCK) == 0) + simple_lock(slock); + return 0; }