patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
195 lines
6 KiB
Diff
195 lines
6 KiB
Diff
Index: sys/dev/twe/twe.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/dev/twe/twe.c,v
|
|
retrieving revision 1.1.2.8.2.1
|
|
retrieving revision 1.1.2.8.2.2
|
|
diff -u -r1.1.2.8.2.1 -r1.1.2.8.2.2
|
|
--- sys/dev/twe/twe.c 12 May 2004 03:37:43 -0000 1.1.2.8.2.1
|
|
+++ sys/dev/twe/twe.c 26 Jun 2004 02:22:24 -0000 1.1.2.8.2.2
|
|
@@ -26,7 +26,7 @@
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
- * $FreeBSD: src/sys/dev/twe/twe.c,v 1.1.2.8.2.1 2004/05/12 03:37:43 vkashyap Exp $
|
|
+ * $FreeBSD: src/sys/dev/twe/twe.c,v 1.1.2.8.2.2 2004/06/26 02:22:24 kensmith Exp $
|
|
*/
|
|
|
|
/*
|
|
@@ -382,7 +382,7 @@
|
|
|
|
debug_called(4);
|
|
|
|
- if (sc->twe_state & TWE_STATE_FRZN)
|
|
+ if (sc->twe_state & (TWE_STATE_CTLR_BUSY | TWE_STATE_FRZN))
|
|
return;
|
|
|
|
/* spin until something prevents us from doing any work */
|
|
@@ -433,6 +433,8 @@
|
|
error = twe_map_request(tr);
|
|
|
|
if (error != 0) {
|
|
+ if (error == EBUSY)
|
|
+ break;
|
|
tr->tr_status = TWE_CMD_ERROR;
|
|
if (tr->tr_private != NULL) {
|
|
bp = (twe_bio *)(tr->tr_private);
|
|
@@ -758,7 +760,7 @@
|
|
} else {
|
|
tr->tr_complete = func;
|
|
error = twe_map_request(tr);
|
|
- if (error == 0)
|
|
+ if ((error == 0) || (error == EBUSY))
|
|
return(func);
|
|
}
|
|
|
|
@@ -924,8 +926,10 @@
|
|
|
|
debug_called(4);
|
|
|
|
+ tr->tr_status = TWE_CMD_BUSY;
|
|
if ((error = twe_map_request(tr)) != 0)
|
|
- return(error);
|
|
+ if (error != EBUSY)
|
|
+ return(error);
|
|
while (tr->tr_status == TWE_CMD_BUSY){
|
|
twe_done(tr->tr_sc);
|
|
}
|
|
@@ -1117,6 +1121,7 @@
|
|
/* move to completed queue */
|
|
twe_remove_busy(tr);
|
|
twe_enqueue_complete(tr);
|
|
+ sc->twe_state &= ~TWE_STATE_CTLR_BUSY;
|
|
} else {
|
|
break; /* no response ready */
|
|
}
|
|
Index: sys/dev/twe/twe_freebsd.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/dev/twe/twe_freebsd.c,v
|
|
retrieving revision 1.2.2.8
|
|
retrieving revision 1.2.2.8.2.1
|
|
diff -u -r1.2.2.8 -r1.2.2.8.2.1
|
|
--- sys/dev/twe/twe_freebsd.c 7 Apr 2004 22:18:00 -0000 1.2.2.8
|
|
+++ sys/dev/twe/twe_freebsd.c 26 Jun 2004 02:22:24 -0000 1.2.2.8.2.1
|
|
@@ -26,7 +26,7 @@
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
- * $FreeBSD: src/sys/dev/twe/twe_freebsd.c,v 1.2.2.8 2004/04/07 22:18:00 vkashyap Exp $
|
|
+ * $FreeBSD: src/sys/dev/twe/twe_freebsd.c,v 1.2.2.8.2.1 2004/06/26 02:22:24 kensmith Exp $
|
|
*/
|
|
|
|
/*
|
|
@@ -999,8 +999,10 @@
|
|
bcopy(tr->tr_realdata, tr->tr_data, tr->tr_length);
|
|
bus_dmamap_sync(tr->tr_sc->twe_buffer_dmat, tr->tr_dmamap, BUS_DMASYNC_PREWRITE);
|
|
}
|
|
- if (twe_start(tr) == EBUSY)
|
|
+ if (twe_start(tr) == EBUSY) {
|
|
+ tr->tr_sc->twe_state |= TWE_STATE_CTLR_BUSY;
|
|
twe_requeue_ready(tr);
|
|
+ }
|
|
}
|
|
|
|
static void
|
|
@@ -1022,8 +1024,10 @@
|
|
|
|
debug_called(4);
|
|
|
|
- if (sc->twe_state & TWE_STATE_FRZN)
|
|
+ if (sc->twe_state & (TWE_STATE_CTLR_BUSY | TWE_STATE_FRZN)) {
|
|
+ twe_requeue_ready(tr);
|
|
return (EBUSY);
|
|
+ }
|
|
|
|
/*
|
|
* Map the command into bus space.
|
|
@@ -1061,8 +1065,8 @@
|
|
}
|
|
} else {
|
|
if ((error = twe_start(tr)) == EBUSY) {
|
|
+ sc->twe_state |= TWE_STATE_CTLR_BUSY;
|
|
twe_requeue_ready(tr);
|
|
- error = 0;
|
|
}
|
|
}
|
|
|
|
Index: sys/dev/twe/twevar.h
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/dev/twe/twevar.h,v
|
|
retrieving revision 1.1.2.6.2.1
|
|
retrieving revision 1.1.2.6.2.2
|
|
diff -u -r1.1.2.6.2.1 -r1.1.2.6.2.2
|
|
--- sys/dev/twe/twevar.h 12 May 2004 03:37:43 -0000 1.1.2.6.2.1
|
|
+++ sys/dev/twe/twevar.h 26 Jun 2004 02:22:24 -0000 1.1.2.6.2.2
|
|
@@ -26,10 +26,10 @@
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
- * $FreeBSD: src/sys/dev/twe/twevar.h,v 1.1.2.6.2.1 2004/05/12 03:37:43 vkashyap Exp $
|
|
+ * $FreeBSD: src/sys/dev/twe/twevar.h,v 1.1.2.6.2.2 2004/06/26 02:22:24 kensmith Exp $
|
|
*/
|
|
|
|
-#define TWE_DRIVER_VERSION_STRING "1.40.01.001"
|
|
+#define TWE_DRIVER_VERSION_STRING "1.40.01.002"
|
|
#define TWE_CDEV_MAJOR 146
|
|
#define TWED_CDEV_MAJOR 147
|
|
|
|
@@ -149,7 +149,8 @@
|
|
#define TWE_STATE_SHUTDOWN (1<<1) /* controller is shut down */
|
|
#define TWE_STATE_OPEN (1<<2) /* control device is open */
|
|
#define TWE_STATE_SUSPEND (1<<3) /* controller is suspended */
|
|
-#define TWE_STATE_FRZN (1<<4)
|
|
+#define TWE_STATE_FRZN (1<<4) /* got EINPROGRESS */
|
|
+#define TWE_STATE_CTLR_BUSY (1<<5) /* controller cmd queue full */
|
|
int twe_host_id;
|
|
struct twe_qstat twe_qstat[TWEQ_COUNT]; /* queue statistics */
|
|
|
|
Index: sys/conf/newvers.sh
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/conf/newvers.sh,v
|
|
retrieving revision 1.44.2.34.2.2
|
|
retrieving revision 1.44.2.34.2.3
|
|
diff -u -r1.44.2.34.2.2 -r1.44.2.34.2.3
|
|
--- sys/conf/newvers.sh 25 May 2004 05:30:47 -0000 1.44.2.34.2.2
|
|
+++ sys/conf/newvers.sh 26 Jun 2004 02:22:24 -0000 1.44.2.34.2.3
|
|
@@ -32,11 +32,11 @@
|
|
# SUCH DAMAGE.
|
|
#
|
|
# @(#)newvers.sh 8.1 (Berkeley) 4/20/94
|
|
-# $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.34.2.2 2004/05/25 05:30:47 scottl Exp $
|
|
+# $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.34.2.3 2004/06/26 02:22:24 kensmith Exp $
|
|
|
|
TYPE="FreeBSD"
|
|
REVISION="4.10"
|
|
-BRANCH="RELEASE"
|
|
+BRANCH="RELEASE-p1"
|
|
RELEASE="${REVISION}-${BRANCH}"
|
|
VERSION="${TYPE} ${RELEASE}"
|
|
|
|
Index: UPDATING
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/UPDATING,v
|
|
retrieving revision 1.73.2.90
|
|
retrieving revision 1.73.2.90.2.2
|
|
diff -u -r1.73.2.90 -r1.73.2.90.2.2
|
|
--- UPDATING 31 Oct 2003 16:40:39 -0000 1.73.2.90
|
|
+++ UPDATING 26 Jun 2004 04:39:46 -0000 1.73.2.90.2.2
|
|
@@ -8,6 +8,12 @@
|
|
the common items quick how-tos, followed by entries for versions of
|
|
-current prior to 4.0 Release.
|
|
|
|
+20040626: p1 FreeBSD-EN-04:01.twe
|
|
+ Fix a bug in twe(4) that could cause kernel lockups.
|
|
+
|
|
+20040527:
|
|
+ FreeBSD 4.10-RELEASE.
|
|
+
|
|
20031028:
|
|
FreeBSD 4.9-RELEASE.
|
|
|
|
@@ -1185,4 +1191,4 @@
|
|
If you find this document useful, and you want to, you may buy the
|
|
author a beer.
|
|
|
|
-$FreeBSD: src/UPDATING,v 1.73.2.90 2003/10/31 16:40:39 simon Exp $
|
|
+$FreeBSD: src/UPDATING,v 1.73.2.90.2.2 2004/06/26 04:39:46 kensmith Exp $
|