Module Name:    src
Committed By:   mrg
Date:           Thu May  5 04:20:51 UTC 2011

Modified Files:
        src/sys/dev/raidframe: rf_evenodd.c rf_netbsdkintf.c
            rf_paritylogDiskMgr.c

Log Message:
finish porting mcpair users to kmutex, and fix a couple of declarations
in rf_netbsdkintf.c.  fixes i386/conf/ALL build.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/raidframe/rf_evenodd.c
cvs rdiff -u -r1.288 -r1.289 src/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -u -r1.23 -r1.24 src/sys/dev/raidframe/rf_paritylogDiskMgr.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/dev/raidframe/rf_evenodd.c
diff -u src/sys/dev/raidframe/rf_evenodd.c:1.19 src/sys/dev/raidframe/rf_evenodd.c:1.20
--- src/sys/dev/raidframe/rf_evenodd.c:1.19	Mon Jan 29 01:52:45 2007
+++ src/sys/dev/raidframe/rf_evenodd.c	Thu May  5 04:20:51 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $	*/
+/*	$NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  ****************************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.19 2007/01/29 01:52:45 hubertf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_evenodd.c,v 1.20 2011/05/05 04:20:51 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -411,13 +411,13 @@
 		rf_PrintDAGList(rd_dag_h);
 	}
 #endif
-	RF_LOCK_MUTEX(mcpair->mutex);
+	RF_LOCK_MCPAIR(mcpair);
 	mcpair->flag = 0;
 	rf_DispatchDAG(rd_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
 	    (void *) mcpair);
 	while (!mcpair->flag)
-		RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-	RF_UNLOCK_MUTEX(mcpair->mutex);
+		RF_WAIT_MCPAIR(mcpair);
+	RF_UNLOCK_MCPAIR(mcpair);
 	if (rd_dag_h->status != rf_enable) {
 		RF_ERRORMSG("Unable to verify parity:  can't read the stripe\n");
 		retcode = RF_PARITY_COULD_NOT_VERIFY;
@@ -473,13 +473,13 @@
 			rf_PrintDAGList(wr_dag_h);
 		}
 #endif
-		RF_LOCK_MUTEX(mcpair->mutex);
+		RF_LOCK_MCPAIR(mcpair);
 		mcpair->flag = 0;
 		rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
 		    (void *) mcpair);
 		while (!mcpair->flag)
-			RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-		RF_UNLOCK_MUTEX(mcpair->mutex);
+			RF_WAIT_MCPAIR(mcpair);
+		RF_UNLOCK_MCPAIR(mcpair);
 		if (wr_dag_h->status != rf_enable) {
 			RF_ERRORMSG("Unable to correct parity in VerifyParity:  can't write the stripe\n");
 			parity_cant_correct = RF_TRUE;
@@ -504,13 +504,13 @@
 			rf_PrintDAGList(wr_dag_h);
 		}
 #endif
-		RF_LOCK_MUTEX(mcpair->mutex);
+		RF_LOCK_MCPAIR(mcpair);
 		mcpair->flag = 0;
 		rf_DispatchDAG(wr_dag_h, (void (*) (void *)) rf_MCPairWakeupFunc,
 		    (void *) mcpair);
 		while (!mcpair->flag)
-			RF_WAIT_COND(mcpair->cond, mcpair->mutex);
-		RF_UNLOCK_MUTEX(mcpair->mutex);
+			RF_WAIT_MCPAIR(mcpair);
+		RF_UNLOCK_MCPAIR(mcpair);
 		if (wr_dag_h->status != rf_enable) {
 			RF_ERRORMSG("Unable to correct second redundant information in VerifyParity:  can't write the stripe\n");
 			red2_cant_correct = RF_TRUE;

Index: src/sys/dev/raidframe/rf_netbsdkintf.c
diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.288 src/sys/dev/raidframe/rf_netbsdkintf.c:1.289
--- src/sys/dev/raidframe/rf_netbsdkintf.c:1.288	Sun May  1 06:22:54 2011
+++ src/sys/dev/raidframe/rf_netbsdkintf.c	Thu May  5 04:20:51 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $	*/
+/*	$NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  ***********************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.288 2011/05/01 06:22:54 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.289 2011/05/05 04:20:51 mrg Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -162,7 +162,7 @@
 static RF_Raid_t **raidPtrs;	/* global raid device descriptors */
 
 #if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
-static rf_declare_mutex2(rf_sparet_wait_mutex):
+static rf_declare_mutex2(rf_sparet_wait_mutex);
 static rf_declare_cond2(rf_sparet_wait_cv);
 static rf_declare_cond2(rf_sparet_resp_cv);
 
@@ -341,9 +341,9 @@
 	}
 
 #if (RF_INCLUDE_PARITY_DECLUSTERING_DS > 0)
-	rf_init_mutex2(&rf_sparet_wait_mutex);
-	rf_init_cond2(&rf_sparet_wait_cv, "sparetw");
-	rf_init_cond2(&rf_sparet_resp_cv, "rfgst");
+	rf_init_mutex2(rf_sparet_wait_mutex, IPL_VM);
+	rf_init_cond2(rf_sparet_wait_cv, "sparetw");
+	rf_init_cond2(rf_sparet_resp_cv, "rfgst");
 
 	rf_sparet_wait_queue = rf_sparet_resp_queue = NULL;
 #endif
@@ -1930,11 +1930,11 @@
 	rf_lock_mutex2(rf_sparet_wait_mutex);
 	req->next = rf_sparet_wait_queue;
 	rf_sparet_wait_queue = req;
-	rf_broadcast_conf2(rf_sparet_wait_cv);
+	rf_broadcast_cond2(rf_sparet_wait_cv);
 
 	/* mpsleep unlocks the mutex */
 	while (!rf_sparet_resp_queue) {
-		cv_wait(rf_sparet_resp_cv, rf_sparet_resp_mutex);
+		rf_wait_cond2(rf_sparet_resp_cv, rf_sparet_wait_mutex);
 	}
 	req = rf_sparet_resp_queue;
 	rf_sparet_resp_queue = req->next;

Index: src/sys/dev/raidframe/rf_paritylogDiskMgr.c
diff -u src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.23 src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.24
--- src/sys/dev/raidframe/rf_paritylogDiskMgr.c:1.23	Sat Mar 14 15:36:20 2009
+++ src/sys/dev/raidframe/rf_paritylogDiskMgr.c	Thu May  5 04:20:51 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_paritylogDiskMgr.c,v 1.23 2009/03/14 15:36:20 dsl Exp $	*/
+/*	$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.23 2009/03/14 15:36:20 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_paritylogDiskMgr.c,v 1.24 2011/05/05 04:20:51 mrg Exp $");
 
 #include "rf_archs.h"
 
@@ -338,7 +338,7 @@
 	RF_PhysDiskAddr_t *fwr_pda;
 
 	fwr_mcpair = rf_AllocMCPair();
-	RF_LOCK_MUTEX(fwr_mcpair->mutex);
+	RF_LOCK_MCPAIR(fwr_mcpair);
 
 	RF_ASSERT(logList);
 	log = logList;
@@ -354,7 +354,7 @@
 
 		/* wait for the DAG to complete */
 		while (!fwr_mcpair->flag)
-			RF_WAIT_COND(fwr_mcpair->cond, fwr_mcpair->mutex);
+			RF_WAIT_MCPAIR(fwr_mcpair);
 		if (fwr_dag_h->status != rf_enable) {
 			RF_ERRORMSG1("Unable to write core log to disk (region %d)\n", regionID);
 			RF_ASSERT(0);
@@ -366,7 +366,7 @@
 
 		log = log->next;
 	}
-	RF_UNLOCK_MUTEX(fwr_mcpair->mutex);
+	RF_UNLOCK_MCPAIR(fwr_mcpair);
 	rf_FreeMCPair(fwr_mcpair);
 	rf_ReleaseParityLogs(raidPtr, logList);
 }
@@ -402,7 +402,7 @@
 		printf("[initiating read of parity for region %d]\n",regionID);
 	parityBuffer = AcquireReintBuffer(&raidPtr->parityBufferPool);
 	prd_mcpair = rf_AllocMCPair();
-	RF_LOCK_MUTEX(prd_mcpair->mutex);
+	RF_LOCK_MCPAIR(prd_mcpair);
 	prd_mcpair->flag = RF_FALSE;
 	ReadRegionParity(regionID, prd_mcpair, parityBuffer, raidPtr,
 			 &prd_dag_h, &prd_alloclist, &prd_pda);
@@ -414,16 +414,16 @@
 			       regionID);
 		regionBuffer = AcquireReintBuffer(&raidPtr->regionBufferPool);
 		rrd_mcpair = rf_AllocMCPair();
-		RF_LOCK_MUTEX(rrd_mcpair->mutex);
+		RF_LOCK_MCPAIR(rrd_mcpair);
 		rrd_mcpair->flag = RF_FALSE;
 		ReadRegionLog(regionID, rrd_mcpair, regionBuffer, raidPtr,
 			      &rrd_dag_h, &rrd_alloclist, &rrd_pda);
 	}
 	/* wait on read of region parity to complete */
 	while (!prd_mcpair->flag) {
-		RF_WAIT_COND(prd_mcpair->cond, prd_mcpair->mutex);
+		RF_WAIT_MCPAIR(prd_mcpair);
 	}
-	RF_UNLOCK_MUTEX(prd_mcpair->mutex);
+	RF_UNLOCK_MCPAIR(prd_mcpair);
 	if (prd_dag_h->status != rf_enable) {
 		RF_ERRORMSG("Unable to read parity from disk\n");
 		/* add code to fail the parity disk */
@@ -435,8 +435,8 @@
 	if (raidPtr->regionInfo[regionID].diskCount > 0) {
 		/* wait on read of region log to complete */
 		while (!rrd_mcpair->flag)
-			RF_WAIT_COND(rrd_mcpair->cond, rrd_mcpair->mutex);
-		RF_UNLOCK_MUTEX(rrd_mcpair->mutex);
+			RF_WAIT_MCPAIR(rrd_mcpair);
+		RF_UNLOCK_MCPAIR(rrd_mcpair);
 		if (rrd_dag_h->status != rf_enable) {
 			RF_ERRORMSG("Unable to read region log from disk\n");
 			/* add code to fail the log disk */
@@ -457,13 +457,13 @@
 		printf("[initiating write of parity for region %d]\n",
 		       regionID);
 	pwr_mcpair = rf_AllocMCPair();
-	RF_LOCK_MUTEX(pwr_mcpair->mutex);
+	RF_LOCK_MCPAIR(pwr_mcpair);
 	pwr_mcpair->flag = RF_FALSE;
 	WriteRegionParity(regionID, pwr_mcpair, parityBuffer, raidPtr,
 			  &pwr_dag_h, &pwr_alloclist, &pwr_pda);
 	while (!pwr_mcpair->flag)
-		RF_WAIT_COND(pwr_mcpair->cond, pwr_mcpair->mutex);
-	RF_UNLOCK_MUTEX(pwr_mcpair->mutex);
+		RF_WAIT_MCPAIR(pwr_mcpair);
+	RF_UNLOCK_MCPAIR(pwr_mcpair);
 	if (pwr_dag_h->status != rf_enable) {
 		RF_ERRORMSG("Unable to write parity to disk\n");
 		/* add code to fail the parity disk */

Reply via email to