From: David Milburn Date: Fri, 3 Sep 2010 22:13:03 +0000 (-0500) Subject: [SCSI] libsas: fix NCQ mixing with non-NCQ X-Git-Tag: v3.0~3064^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0ad30d3d2dc924decc0e10b1ff6dc32525a5d99;p=platform%2Fkernel%2Flinux-amlogic.git [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 Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 042153c..ddbade7 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,