summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe/rf_diskqueue.c
diff options
context:
space:
mode:
authormrg <mrg@NetBSD.org>2011-05-05 06:04:09 +0000
committermrg <mrg@NetBSD.org>2011-05-05 06:04:09 +0000
commit4a2960f7fe8e883d10062ef345bffc1c98b282a8 (patch)
tree07ac62e53967c1f6c18e6590dd9179ee19f606fc /sys/dev/raidframe/rf_diskqueue.c
parent7b6c89aefe88f116f86c78ffc99e5e97ce77a924 (diff)
convert the diskqueue mutex into a kmutex
Diffstat (limited to 'sys/dev/raidframe/rf_diskqueue.c')
-rw-r--r--sys/dev/raidframe/rf_diskqueue.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/dev/raidframe/rf_diskqueue.c b/sys/dev/raidframe/rf_diskqueue.c
index 3cd638c5797..33e42772f91 100644
--- a/sys/dev/raidframe/rf_diskqueue.c
+++ b/sys/dev/raidframe/rf_diskqueue.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_diskqueue.c,v 1.52 2009/03/23 18:38:54 oster Exp $ */
+/* $NetBSD: rf_diskqueue.c,v 1.53 2011/05/05 06:04:09 mrg Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
* All rights reserved.
@@ -66,7 +66,7 @@
****************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.52 2009/03/23 18:38:54 oster Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.53 2011/05/05 06:04:09 mrg Exp $");
#include <dev/raidframe/raidframevar.h>
@@ -154,6 +154,14 @@ static const RF_DiskQueueSW_t diskqueuesw[] = {
/* configures a single disk queue */
+static void
+rf_ShutdownDiskQueue(void *arg)
+{
+ RF_DiskQueue_t *diskqueue = arg;
+
+ rf_destroy_mutex2(diskqueue->mutex);
+}
+
int
rf_ConfigureDiskQueue(RF_Raid_t *raidPtr, RF_DiskQueue_t *diskqueue,
RF_RowCol_t c, const RF_DiskQueueSW_t *p,
@@ -172,8 +180,8 @@ rf_ConfigureDiskQueue(RF_Raid_t *raidPtr, RF_DiskQueue_t *diskqueue,
diskqueue->flags = 0;
diskqueue->raidPtr = raidPtr;
diskqueue->rf_cinfo = &raidPtr->raid_cinfo[c];
- rf_mutex_init(&diskqueue->mutex);
- diskqueue->cond = 0;
+ rf_init_mutex2(diskqueue->mutex, IPL_VM);
+ rf_ShutdownCreate(listp, rf_ShutdownDiskQueue, diskqueue);
return (0);
}