Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Oct 2009 12:25:17 GMT
From:      Alexander Motin <mav@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 169637 for review
Message-ID:  <200910211225.n9LCPHfO017389@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=169637

Change 169637 by mav@mav_mavbook on 2009/10/21 12:24:34

	Reclear status after xpt_freeze_simq() could change it.
	Do minor formatting.

Affected files ...

.. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#69 edit

Differences ...

==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#69 (text+ko) ====

@@ -966,9 +966,9 @@
 	/* Process command errors */
 	if (istatus & (AHCI_P_IX_OF | AHCI_P_IX_IF |
 	    AHCI_P_IX_HBD | AHCI_P_IX_HBF | AHCI_P_IX_TFE)) {
-device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n",
-    __func__, istatus, cstatus, sstatus, ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD),
-    serr);
+//device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n",
+//    __func__, istatus, cstatus, sstatus, ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD),
+//    serr);
 		ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK)
 		    >> AHCI_P_CMD_CCS_SHIFT;
 		err = ch->rslots & (cstatus | sstatus);
@@ -1271,11 +1271,10 @@
 	}
 
 	device_printf(dev, "Timeout on slot %d\n", slot->slot);
-device_printf(dev, "%s is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n",
-    __func__, ATA_INL(ch->r_mem, AHCI_P_IS),
-    ATA_INL(ch->r_mem, AHCI_P_CI), 
-    ATA_INL(ch->r_mem, AHCI_P_SACT), ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD),
-    ATA_INL(ch->r_mem, AHCI_P_SERR));
+	device_printf(dev, "is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n",
+	    ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_CI),
+	    ATA_INL(ch->r_mem, AHCI_P_SACT), ch->rslots,
+	    ATA_INL(ch->r_mem, AHCI_P_TFD), ATA_INL(ch->r_mem, AHCI_P_SERR));
 	/* Kick controller into sane state. */
 	ahci_stop(ch->dev);
 	ahci_start(ch->dev);
@@ -1378,6 +1377,7 @@
 	case AHCI_ERR_SATA:
 		if (!ch->readlog) {
 			xpt_freeze_simq(ch->sim, 1);
+			ccb->ccb_h.status &= ~CAM_STATUS_MASK;
 			ccb->ccb_h.status |= CAM_RELEASE_SIMQ;
 		}
 		ccb->ccb_h.status |= CAM_UNCOR_PARITY;
@@ -1385,6 +1385,7 @@
 	case AHCI_ERR_TIMEOUT:
 		if (!ch->readlog) {
 			xpt_freeze_simq(ch->sim, 1);
+			ccb->ccb_h.status &= ~CAM_STATUS_MASK;
 			ccb->ccb_h.status |= CAM_RELEASE_SIMQ;
 		}
 		ccb->ccb_h.status |= CAM_CMD_TIMEOUT;



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