Albert Lee wrote:
Use AC_ERR_TIMEOUT err_mask for time out,
instead of generating err_mask from drv_stat.
Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx>
---
This patch was accepted in irq-pio before.
Patch against upstream (8b316a3973f05e572b4edeeda9072987f6bbaa44).
For your review, thanks.
Albert
--- upstream0/drivers/scsi/libata-core.c 2006-03-31 13:33:15.000000000 +0800
+++ upstream1/drivers/scsi/libata-core.c 2006-03-31 13:34:59.000000000 +0800
@@ -3827,7 +3827,7 @@ static void ata_qc_timeout(struct ata_qu
ap->id, qc->tf.command, drv_stat, host_stat);
/* complete taskfile transaction */
- qc->err_mask |= ac_err_mask(drv_stat);
+ qc->err_mask |= AC_ERR_TIMEOUT;
The intention here is to catch missed interrupts; due to flaky hardware
or buggy drivers, we may miss an interrupt, but still be able to
complete the qc in the timeout handler. Thus, if the ac_err_mask()
indicates a BSY or DRQ or DF is asserted, it will indicate an error,
otherwise not.
So, NAK, and we should fix irq-pio for this as well...
Jeff
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html