Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/website/static/security/patches/EN-04:01/twe.patch
18096 views
1
Index: sys/dev/twe/twe.c
2
===================================================================
3
RCS file: /home/ncvs/src/sys/dev/twe/twe.c,v
4
retrieving revision 1.1.2.8.2.1
5
retrieving revision 1.1.2.8.2.2
6
diff -u -r1.1.2.8.2.1 -r1.1.2.8.2.2
7
--- sys/dev/twe/twe.c 12 May 2004 03:37:43 -0000 1.1.2.8.2.1
8
+++ sys/dev/twe/twe.c 26 Jun 2004 02:22:24 -0000 1.1.2.8.2.2
9
@@ -26,7 +26,7 @@
10
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
11
* SUCH DAMAGE.
12
*
13
- * $FreeBSD: src/sys/dev/twe/twe.c,v 1.1.2.8.2.1 2004/05/12 03:37:43 vkashyap Exp $
14
+ * $FreeBSD: src/sys/dev/twe/twe.c,v 1.1.2.8.2.2 2004/06/26 02:22:24 kensmith Exp $
15
*/
16
17
/*
18
@@ -382,7 +382,7 @@
19
20
debug_called(4);
21
22
- if (sc->twe_state & TWE_STATE_FRZN)
23
+ if (sc->twe_state & (TWE_STATE_CTLR_BUSY | TWE_STATE_FRZN))
24
return;
25
26
/* spin until something prevents us from doing any work */
27
@@ -433,6 +433,8 @@
28
error = twe_map_request(tr);
29
30
if (error != 0) {
31
+ if (error == EBUSY)
32
+ break;
33
tr->tr_status = TWE_CMD_ERROR;
34
if (tr->tr_private != NULL) {
35
bp = (twe_bio *)(tr->tr_private);
36
@@ -758,7 +760,7 @@
37
} else {
38
tr->tr_complete = func;
39
error = twe_map_request(tr);
40
- if (error == 0)
41
+ if ((error == 0) || (error == EBUSY))
42
return(func);
43
}
44
45
@@ -924,8 +926,10 @@
46
47
debug_called(4);
48
49
+ tr->tr_status = TWE_CMD_BUSY;
50
if ((error = twe_map_request(tr)) != 0)
51
- return(error);
52
+ if (error != EBUSY)
53
+ return(error);
54
while (tr->tr_status == TWE_CMD_BUSY){
55
twe_done(tr->tr_sc);
56
}
57
@@ -1117,6 +1121,7 @@
58
/* move to completed queue */
59
twe_remove_busy(tr);
60
twe_enqueue_complete(tr);
61
+ sc->twe_state &= ~TWE_STATE_CTLR_BUSY;
62
} else {
63
break; /* no response ready */
64
}
65
Index: sys/dev/twe/twe_freebsd.c
66
===================================================================
67
RCS file: /home/ncvs/src/sys/dev/twe/twe_freebsd.c,v
68
retrieving revision 1.2.2.8
69
retrieving revision 1.2.2.8.2.1
70
diff -u -r1.2.2.8 -r1.2.2.8.2.1
71
--- sys/dev/twe/twe_freebsd.c 7 Apr 2004 22:18:00 -0000 1.2.2.8
72
+++ sys/dev/twe/twe_freebsd.c 26 Jun 2004 02:22:24 -0000 1.2.2.8.2.1
73
@@ -26,7 +26,7 @@
74
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
75
* SUCH DAMAGE.
76
*
77
- * $FreeBSD: src/sys/dev/twe/twe_freebsd.c,v 1.2.2.8 2004/04/07 22:18:00 vkashyap Exp $
78
+ * $FreeBSD: src/sys/dev/twe/twe_freebsd.c,v 1.2.2.8.2.1 2004/06/26 02:22:24 kensmith Exp $
79
*/
80
81
/*
82
@@ -999,8 +999,10 @@
83
bcopy(tr->tr_realdata, tr->tr_data, tr->tr_length);
84
bus_dmamap_sync(tr->tr_sc->twe_buffer_dmat, tr->tr_dmamap, BUS_DMASYNC_PREWRITE);
85
}
86
- if (twe_start(tr) == EBUSY)
87
+ if (twe_start(tr) == EBUSY) {
88
+ tr->tr_sc->twe_state |= TWE_STATE_CTLR_BUSY;
89
twe_requeue_ready(tr);
90
+ }
91
}
92
93
static void
94
@@ -1022,8 +1024,10 @@
95
96
debug_called(4);
97
98
- if (sc->twe_state & TWE_STATE_FRZN)
99
+ if (sc->twe_state & (TWE_STATE_CTLR_BUSY | TWE_STATE_FRZN)) {
100
+ twe_requeue_ready(tr);
101
return (EBUSY);
102
+ }
103
104
/*
105
* Map the command into bus space.
106
@@ -1061,8 +1065,8 @@
107
}
108
} else {
109
if ((error = twe_start(tr)) == EBUSY) {
110
+ sc->twe_state |= TWE_STATE_CTLR_BUSY;
111
twe_requeue_ready(tr);
112
- error = 0;
113
}
114
}
115
116
Index: sys/dev/twe/twevar.h
117
===================================================================
118
RCS file: /home/ncvs/src/sys/dev/twe/twevar.h,v
119
retrieving revision 1.1.2.6.2.1
120
retrieving revision 1.1.2.6.2.2
121
diff -u -r1.1.2.6.2.1 -r1.1.2.6.2.2
122
--- sys/dev/twe/twevar.h 12 May 2004 03:37:43 -0000 1.1.2.6.2.1
123
+++ sys/dev/twe/twevar.h 26 Jun 2004 02:22:24 -0000 1.1.2.6.2.2
124
@@ -26,10 +26,10 @@
125
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
126
* SUCH DAMAGE.
127
*
128
- * $FreeBSD: src/sys/dev/twe/twevar.h,v 1.1.2.6.2.1 2004/05/12 03:37:43 vkashyap Exp $
129
+ * $FreeBSD: src/sys/dev/twe/twevar.h,v 1.1.2.6.2.2 2004/06/26 02:22:24 kensmith Exp $
130
*/
131
132
-#define TWE_DRIVER_VERSION_STRING "1.40.01.001"
133
+#define TWE_DRIVER_VERSION_STRING "1.40.01.002"
134
#define TWE_CDEV_MAJOR 146
135
#define TWED_CDEV_MAJOR 147
136
137
@@ -149,7 +149,8 @@
138
#define TWE_STATE_SHUTDOWN (1<<1) /* controller is shut down */
139
#define TWE_STATE_OPEN (1<<2) /* control device is open */
140
#define TWE_STATE_SUSPEND (1<<3) /* controller is suspended */
141
-#define TWE_STATE_FRZN (1<<4)
142
+#define TWE_STATE_FRZN (1<<4) /* got EINPROGRESS */
143
+#define TWE_STATE_CTLR_BUSY (1<<5) /* controller cmd queue full */
144
int twe_host_id;
145
struct twe_qstat twe_qstat[TWEQ_COUNT]; /* queue statistics */
146
147
Index: sys/conf/newvers.sh
148
===================================================================
149
RCS file: /home/ncvs/src/sys/conf/newvers.sh,v
150
retrieving revision 1.44.2.34.2.2
151
retrieving revision 1.44.2.34.2.3
152
diff -u -r1.44.2.34.2.2 -r1.44.2.34.2.3
153
--- sys/conf/newvers.sh 25 May 2004 05:30:47 -0000 1.44.2.34.2.2
154
+++ sys/conf/newvers.sh 26 Jun 2004 02:22:24 -0000 1.44.2.34.2.3
155
@@ -32,11 +32,11 @@
156
# SUCH DAMAGE.
157
#
158
# @(#)newvers.sh 8.1 (Berkeley) 4/20/94
159
-# $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.34.2.2 2004/05/25 05:30:47 scottl Exp $
160
+# $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.34.2.3 2004/06/26 02:22:24 kensmith Exp $
161
162
TYPE="FreeBSD"
163
REVISION="4.10"
164
-BRANCH="RELEASE"
165
+BRANCH="RELEASE-p1"
166
RELEASE="${REVISION}-${BRANCH}"
167
VERSION="${TYPE} ${RELEASE}"
168
169
Index: UPDATING
170
===================================================================
171
RCS file: /home/ncvs/src/UPDATING,v
172
retrieving revision 1.73.2.90
173
retrieving revision 1.73.2.90.2.2
174
diff -u -r1.73.2.90 -r1.73.2.90.2.2
175
--- UPDATING 31 Oct 2003 16:40:39 -0000 1.73.2.90
176
+++ UPDATING 26 Jun 2004 04:39:46 -0000 1.73.2.90.2.2
177
@@ -8,6 +8,12 @@
178
the common items quick how-tos, followed by entries for versions of
179
-current prior to 4.0 Release.
180
181
+20040626: p1 FreeBSD-EN-04:01.twe
182
+ Fix a bug in twe(4) that could cause kernel lockups.
183
+
184
+20040527:
185
+ FreeBSD 4.10-RELEASE.
186
+
187
20031028:
188
FreeBSD 4.9-RELEASE.
189
190
@@ -1185,4 +1191,4 @@
191
If you find this document useful, and you want to, you may buy the
192
author a beer.
193
194
-$FreeBSD: src/UPDATING,v 1.73.2.90 2003/10/31 16:40:39 simon Exp $
195
+$FreeBSD: src/UPDATING,v 1.73.2.90.2.2 2004/06/26 04:39:46 kensmith Exp $
196
197