ATAng no good for me/REQUEST_SENSE recovered from missing interrupt

Thomas Quinot thomas at cuivre.fr.eu.org
Sat Sep 20 12:53:16 PDT 2003


Le 2003-09-20, Daniel Eischen écrivait :

> No, using latest sources, with or without atapicam, does
> not solve the problem.  It still hangs.

Please try the patch below, it should at least work around the problem.

>   http://people.freebsd.org/~deischen/ata_hang.091903

Interesting, the last 2 lines are :

ata0: spurious interrupt - status=0x50 error=0x00
acd0: WARNING - REQUEST_SENSE recovered from missing interrupt

so I'd suspect there is some race condition between the interrupt
and the REQUEST_SENSE command. Søren, shouldn't ata_interrupt lock the
channel before copying ch->running?

Thomas.

Index: atapi-cam.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/atapi-cam.c,v
retrieving revision 1.23
diff -u -r1.23 atapi-cam.c
--- atapi-cam.c	19 Sep 2003 16:25:44 -0000	1.23
+++ atapi-cam.c	20 Sep 2003 19:29:41 -0000
@@ -561,6 +561,7 @@
 #endif
     if (hcb_status != 0) {
 	csio->scsi_status = SCSI_STATUS_CHECK_COND;
+#if 0
 	if ((csio->ccb_h.flags & CAM_DIS_AUTOSENSE) == 0) {
 	    int8_t ccb[16] = { ATAPI_REQUEST_SENSE, 0, 0, 0,
 		sizeof(struct atapi_sense), 0, 0, 0, 0, 0, 0,
@@ -572,6 +573,7 @@
 		csio->ccb_h.status |= CAM_AUTOSNS_VALID;
 	    }
 	}
+#endif
 	free_hcb_and_ccb_done(hcb, CAM_SCSI_STATUS_ERROR);
     }
     else {

-- 
    Thomas.Quinot at Cuivre.FR.EU.ORG


More information about the freebsd-current mailing list