doc/share/security/patches/EN-04:01/twe.patch
Bjoern A. Zeeb 3571e53040 Import FreeBSD Security Advisories and Errata Notices, as well as their
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)
2012-08-15 06:19:40 +00:00

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 $