]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/commitdiff
libsas: fix NCQ mixing with non-NCQ
authorDavid Milburn <dmilburn@redhat.com>
Fri, 3 Sep 2010 22:13:03 +0000 (17:13 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 22 Nov 2010 19:03:15 +0000 (11:03 -0800)
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: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/libsas/sas_ata.c

index 042153cbbde131bdc9a631cb60c988dc7004ec44..ddbade7beec937c647a2928cddfebe58bf1d7d2f 100644 (file)
@@ -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,