svn commit: r207221 - head/sys/dev/ata

Alexander Motin mav at FreeBSD.org
Mon Apr 26 11:58:16 UTC 2010


Author: mav
Date: Mon Apr 26 11:58:15 2010
New Revision: 207221
URL: http://svn.freebsd.org/changeset/base/207221

Log:
  Mark ATA channel as idle on timeout in non-ATA_CAM mode.
  This should fix possible duplicate request completion.
  
  Submitted by:	mjacob

Modified:
  head/sys/dev/ata/ata-queue.c

Modified: head/sys/dev/ata/ata-queue.c
==============================================================================
--- head/sys/dev/ata/ata-queue.c	Mon Apr 26 04:32:29 2010	(r207220)
+++ head/sys/dev/ata/ata-queue.c	Mon Apr 26 11:58:15 2010	(r207221)
@@ -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);


More information about the svn-src-head mailing list