aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2005-05-11 14:36:26 +0000
committerSøren Schmidt <sos@FreeBSD.org>2005-05-11 14:36:26 +0000
commitd0968d7845749d1557ff90e3d868d8e302d30c01 (patch)
treef25db5e18a4c1e84ee919b52aeede638082c760c /sys
parentf73fd5bd7577a37795b37c61fc116463dc164d61 (diff)
downloadsrc-d0968d7845749d1557ff90e3d868d8e302d30c01.tar.gz
src-d0968d7845749d1557ff90e3d868d8e302d30c01.zip
Add back one line that got deleted in the last commit.
Change the comment there so it better describes whats going on. This should fix the boot problems of late.
Notes
Notes: svn path=/head/; revision=146100
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-queue.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c
index f2a3d3db08ba..f62de39620af 100644
--- a/sys/dev/ata/ata-queue.c
+++ b/sys/dev/ata/ata-queue.c
@@ -450,11 +450,13 @@ ata_timeout(struct ata_request *request)
ATA_DEBUG_RQ(request, "timeout");
/*
- * set the state to TIMEOUT so we wont loose the race with
- * an eventual interrupt arriving late
+ * flag the request ATA_R_TIMEOUT and NULL out the running request
+ * so we wont loose the race with an eventual interrupt arriving late
+ * and dont reissue the command in ata_catch_inflight()
*/
if (ch->state == ATA_ACTIVE || ch->state == ATA_STALL_QUEUE) {
request->flags |= ATA_R_TIMEOUT;
+ ch->running = NULL;
mtx_unlock(&ch->state_mtx);
ATA_LOCKING(ch->dev, ATA_LF_UNLOCK);
ata_finish(request);