Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Apr 2010 11:58:15 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r207221 - head/sys/dev/ata
Message-ID:  <201004261158.o3QBwFDA075788@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004261158.o3QBwFDA075788>