summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Milburn <dmilburn@redhat.com>2010-09-03 17:13:03 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2011-01-06 18:08:26 -0500
commit00c0012c32adebb709e8139ec603b476adae95ea (patch)
tree98650c2a81ab3234cd352c9f4ced6425924240a8
parent40f6bfc766b4a53c8018da34b18c772cbbeffce5 (diff)
libsas: fix NCQ mixing with non-NCQ
commit f0ad30d3d2dc924decc0e10b1ff6dc32525a5d99 upstream. Some cards (like mvsas) have issue troubles if non-NCQ commands are mixed with NCQ ones. Fix this by using the libata default NCQ check routine which waits until all NCQ commands are complete before issuing a non-NCQ one. The impact to cards (like aic94xx) which don't need this logic should be minimal Signed-off-by: James Bottomley <James.Bottomley@suse.de> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--drivers/scsi/libsas/sas_ata.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 8c496b56556c..fb788566adae 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -347,6 +347,7 @@ static int sas_ata_scr_read(struct ata_link *link, unsigned int sc_reg_in,
static struct ata_port_operations sas_sata_ops = {
.phy_reset = sas_ata_phy_reset,
.post_internal_cmd = sas_ata_post_internal,
+ .qc_defer = ata_std_qc_defer,
.qc_prep = ata_noop_qc_prep,
.qc_issue = sas_ata_qc_issue,
.qc_fill_rtf = sas_ata_qc_fill_rtf,