diff options
author | mav <mav@FreeBSD.org> | 2010-04-26 11:58:15 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-04-26 11:58:15 +0000 |
commit | b38c610c42f1f42b7ff92208194e775e0401adfe (patch) | |
tree | fe83fe88e90a7025edbd934b731a21015c470ec0 | |
parent | 653c8ae2c42bcc0f4f0e49074861edcc17bacad0 (diff) | |
download | FreeBSD-src-b38c610c42f1f42b7ff92208194e775e0401adfe.zip FreeBSD-src-b38c610c42f1f42b7ff92208194e775e0401adfe.tar.gz |
Mark ATA channel as idle on timeout in non-ATA_CAM mode.
This should fix possible duplicate request completion.
Submitted by: mjacob
-rw-r--r-- | sys/dev/ata/ata-queue.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c index a3b1c4e..4aef471 100644 --- a/sys/dev/ata/ata-queue.c +++ b/sys/dev/ata/ata-queue.c @@ -513,9 +513,9 @@ ata_timeout(struct ata_request *request) request->flags |= ATA_R_TIMEOUT; if (ch->dma.unload) ch->dma.unload(request); -#ifdef ATA_CAM ch->running = NULL; ch->state = ATA_IDLE; +#ifdef ATA_CAM ata_cam_end_transaction(ch->dev, request); #endif mtx_unlock(&ch->state_mtx); |