Module Name: src
Committed By: rmind
Date: Sun Aug 7 13:39:24 UTC 2011
Modified Files:
src/sys/dev/i2o: dpti.c dptivar.h
src/sys/dev/ic: dpt.c dptvar.h
src/sys/dev/mca: ed_mca.c edc_mca.c
Log Message:
Replace some wakeup_one(9) uses with mutex(9) or plain wakeup(9).
To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/sys/dev/i2o/dpti.c
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/i2o/dptivar.h
cvs rdiff -u -r1.65 -r1.66 src/sys/dev/ic/dpt.c
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ic/dptvar.h
cvs rdiff -u -r1.47 -r1.48 src/sys/dev/mca/ed_mca.c
cvs rdiff -u -r1.44 -r1.45 src/sys/dev/mca/edc_mca.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/i2o/dpti.c
diff -u src/sys/dev/i2o/dpti.c:1.43 src/sys/dev/i2o/dpti.c:1.44
--- src/sys/dev/i2o/dpti.c:1.43 Sat Nov 13 13:51:59 2010
+++ src/sys/dev/i2o/dpti.c Sun Aug 7 13:39:23 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: dpti.c,v 1.43 2010/11/13 13:51:59 uebayasi Exp $ */
+/* $NetBSD: dpti.c,v 1.44 2011/08/07 13:39:23 rmind Exp $ */
/*-
* Copyright (c) 2001, 2007 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dpti.c,v 1.43 2010/11/13 13:51:59 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dpti.c,v 1.44 2011/08/07 13:39:23 rmind Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -272,16 +272,13 @@
if (rv)
break;
- if (sc->sc_nactive++ >= 2)
- tsleep(&sc->sc_nactive, PRIBIO, "dptislp", 0);
-
- if (linux)
+ mutex_enter(&iop->sc_conflock);
+ if (linux) {
rv = dpti_passthrough(sc, data, l->l_proc);
- else
+ } else {
rv = dpti_passthrough(sc, *(void **)data, l->l_proc);
-
- sc->sc_nactive--;
- wakeup_one(&sc->sc_nactive);
+ }
+ mutex_exit(&iop->sc_conflock);
break;
case DPT_I2ORESETCMD:
Index: src/sys/dev/i2o/dptivar.h
diff -u src/sys/dev/i2o/dptivar.h:1.7 src/sys/dev/i2o/dptivar.h:1.8
--- src/sys/dev/i2o/dptivar.h:1.7 Mon Apr 28 20:23:48 2008
+++ src/sys/dev/i2o/dptivar.h Sun Aug 7 13:39:23 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: dptivar.h,v 1.7 2008/04/28 20:23:48 martin Exp $ */
+/* $NetBSD: dptivar.h,v 1.8 2011/08/07 13:39:23 rmind Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -63,7 +63,6 @@
struct dpti_softc {
struct device sc_dv;
int sc_blinkled;
- int sc_nactive;
};
struct dpti_ptbuf {
Index: src/sys/dev/ic/dpt.c
diff -u src/sys/dev/ic/dpt.c:1.65 src/sys/dev/ic/dpt.c:1.66
--- src/sys/dev/ic/dpt.c:1.65 Fri Jul 1 08:38:10 2011
+++ src/sys/dev/ic/dpt.c Sun Aug 7 13:39:24 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: dpt.c,v 1.65 2011/07/01 08:38:10 mrg Exp $ */
+/* $NetBSD: dpt.c,v 1.66 2011/08/07 13:39:24 rmind Exp $ */
/*-
* Copyright (c) 1997, 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dpt.c,v 1.65 2011/07/01 08:38:10 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dpt.c,v 1.66 2011/08/07 13:39:24 rmind Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -82,6 +82,7 @@
#include <sys/conf.h>
#include <sys/kauth.h>
#include <sys/proc.h>
+#include <sys/mutex.h>
#include <sys/bus.h>
#ifdef i386
@@ -330,6 +331,7 @@
ec = &sc->sc_ec;
snprintf(dpt_sig.dsDescription, sizeof(dpt_sig.dsDescription),
"NetBSD %s DPT driver", osrelease);
+ mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_NONE);
/*
* Allocate the CCB/status packet/scratch DMA map and load.
@@ -1156,13 +1158,10 @@
return (EINVAL);
}
- if (sc->sc_uactive++)
- tsleep(&sc->sc_uactive, PRIBIO, "dptslp", 0);
-
+ mutex_enter(&sc->sc_lock);
rv = dpt_passthrough(sc, (struct eata_ucp *)data, l);
+ mutex_exit(&sc->sc_lock);
- sc->sc_uactive--;
- wakeup_one(&sc->sc_uactive);
return (rv);
default:
Index: src/sys/dev/ic/dptvar.h
diff -u src/sys/dev/ic/dptvar.h:1.14 src/sys/dev/ic/dptvar.h:1.15
--- src/sys/dev/ic/dptvar.h:1.14 Sun Mar 4 06:01:54 2007
+++ src/sys/dev/ic/dptvar.h Sun Aug 7 13:39:24 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: dptvar.h,v 1.14 2007/03/04 06:01:54 christos Exp $ */
+/* $NetBSD: dptvar.h,v 1.15 2011/08/07 13:39:24 rmind Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Andrew Doran <[email protected]>
@@ -65,6 +65,7 @@
struct dpt_softc {
struct device sc_dv; /* generic device data */
+ kmutex_t sc_lock;
struct scsipi_adapter sc_adapt; /* scsipi adapter */
struct scsipi_channel sc_chans[3]; /* each channel */
bus_space_handle_t sc_ioh; /* bus space handle */
@@ -83,7 +84,6 @@
int sc_nccbs; /* number of CCBs available */
SLIST_HEAD(, dpt_ccb) sc_ccb_free;/* free ccb list */
struct eata_cfg sc_ec; /* EATA configuration data */
- int sc_uactive; /* user command active */
int sc_bustype; /* SysInfo bus type */
int sc_isadrq; /* ISA DRQ */
int sc_isairq; /* ISA IRQ */
Index: src/sys/dev/mca/ed_mca.c
diff -u src/sys/dev/mca/ed_mca.c:1.47 src/sys/dev/mca/ed_mca.c:1.48
--- src/sys/dev/mca/ed_mca.c:1.47 Tue May 12 14:31:00 2009
+++ src/sys/dev/mca/ed_mca.c Sun Aug 7 13:39:24 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: ed_mca.c,v 1.47 2009/05/12 14:31:00 cegger Exp $ */
+/* $NetBSD: ed_mca.c,v 1.48 2011/08/07 13:39:24 rmind Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ed_mca.c,v 1.47 2009/05/12 14:31:00 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ed_mca.c,v 1.48 2011/08/07 13:39:24 rmind Exp $");
#include "rnd.h"
@@ -254,7 +254,7 @@
simple_unlock(&ed->sc_q_lock);
/* Ring the worker thread */
- wakeup_one(ed->edc_softc);
+ wakeup(ed->edc_softc);
return;
done:
Index: src/sys/dev/mca/edc_mca.c
diff -u src/sys/dev/mca/edc_mca.c:1.44 src/sys/dev/mca/edc_mca.c:1.45
--- src/sys/dev/mca/edc_mca.c:1.44 Tue May 12 14:31:00 2009
+++ src/sys/dev/mca/edc_mca.c Sun Aug 7 13:39:24 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: edc_mca.c,v 1.44 2009/05/12 14:31:00 cegger Exp $ */
+/* $NetBSD: edc_mca.c,v 1.45 2011/08/07 13:39:24 rmind Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: edc_mca.c,v 1.44 2009/05/12 14:31:00 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: edc_mca.c,v 1.45 2011/08/07 13:39:24 rmind Exp $");
#include "rnd.h"
@@ -481,7 +481,7 @@
if (intr_id != ISR_DATA_TRANSFER_RDY) {
if (cmd == CMD_READ_DATA || cmd == CMD_WRITE_DATA)
sc->sc_resblk = sc->status_block[SB_RESBLKCNT_IDX];
- wakeup_one(sc);
+ wakeup(sc);
}
return (1);