summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/onewire/onewire.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/dev/onewire/onewire.c b/sys/dev/onewire/onewire.c
index 0873c4b97d9..4d2f21b8fc4 100644
--- a/sys/dev/onewire/onewire.c
+++ b/sys/dev/onewire/onewire.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: onewire.c,v 1.3 2006/09/29 19:38:52 grange Exp $ */
+/* $OpenBSD: onewire.c,v 1.4 2006/09/30 08:50:57 grange Exp $ */
/*
* Copyright (c) 2006 Alexander Yurchenko <grange@openbsd.org>
@@ -25,10 +25,10 @@
#include <sys/device.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
-#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/proc.h>
#include <sys/queue.h>
+#include <sys/rwlock.h>
#include <dev/onewire/onewirereg.h>
#include <dev/onewire/onewirevar.h>
@@ -46,7 +46,7 @@ struct onewire_softc {
struct device sc_dev;
struct onewire_bus * sc_bus;
- struct lock sc_lock;
+ struct rwlock sc_lock;
struct proc * sc_thread;
TAILQ_HEAD(, onewire_device) sc_devs;
@@ -97,7 +97,7 @@ onewire_attach(struct device *parent, struct device *self, void *aux)
struct onewirebus_attach_args *oba = aux;
sc->sc_bus = oba->oba_bus;
- lockinit(&sc->sc_lock, PRIBIO, "owlock", 0, 0);
+ rw_init(&sc->sc_lock, sc->sc_dev.dv_xname);
TAILQ_INIT(&sc->sc_devs);
printf("\n");
@@ -175,12 +175,12 @@ int
onewire_lock(void *arg, int flags)
{
struct onewire_softc *sc = arg;
- int lflags = LK_EXCLUSIVE;
+ int lflags = RW_WRITE;
if (flags & ONEWIRE_NOWAIT)
- lflags |= LK_NOWAIT;
+ lflags |= RW_NOSLEEP;
- return (lockmgr(&sc->sc_lock, lflags, NULL));
+ return (rw_enter(&sc->sc_lock, lflags));
}
void
@@ -188,7 +188,7 @@ onewire_unlock(void *arg)
{
struct onewire_softc *sc = arg;
- lockmgr(&sc->sc_lock, LK_RELEASE, NULL);
+ rw_exit(&sc->sc_lock);
}
int