diff options
author | David Milburn <dmilburn@redhat.com> | 2010-09-03 18:13:03 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-10-07 18:06:03 -0400 |
commit | f0ad30d3d2dc924decc0e10b1ff6dc32525a5d99 (patch) | |
tree | 6444b24afcb1c4a15c98de738d912698bab6a93a /drivers/scsi | |
parent | 045d3fe766b01921e24e2d4178e011b3b09ad4d6 (diff) |
[SCSI] libsas: fix NCQ mixing with non-NCQ
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
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/libsas/sas_ata.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 042153cbbde1..ddbade7beec9 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, | |||
347 | static struct ata_port_operations sas_sata_ops = { | 347 | static struct ata_port_operations sas_sata_ops = { |
348 | .phy_reset = sas_ata_phy_reset, | 348 | .phy_reset = sas_ata_phy_reset, |
349 | .post_internal_cmd = sas_ata_post_internal, | 349 | .post_internal_cmd = sas_ata_post_internal, |
350 | .qc_defer = ata_std_qc_defer, | ||
350 | .qc_prep = ata_noop_qc_prep, | 351 | .qc_prep = ata_noop_qc_prep, |
351 | .qc_issue = sas_ata_qc_issue, | 352 | .qc_issue = sas_ata_qc_issue, |
352 | .qc_fill_rtf = sas_ata_qc_fill_rtf, | 353 | .qc_fill_rtf = sas_ata_qc_fill_rtf, |