diff options
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
| -rw-r--r-- | drivers/scsi/libsas/sas_ata.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 441d88ad99a7..d109cc3a17b6 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -139,12 +139,12 @@ static void sas_ata_task_done(struct sas_task *task)  	if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD ||  	    ((stat->stat == SAM_STAT_CHECK_CONDITION &&  	      dev->sata_dev.command_set == ATAPI_COMMAND_SET))) { -		ata_tf_from_fis(resp->ending_fis, &dev->sata_dev.tf); +		memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE);  		if (!link->sactive) { -			qc->err_mask |= ac_err_mask(dev->sata_dev.tf.command); +			qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]);  		} else { -			link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.tf.command); +			link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.fis[2]);  			if (unlikely(link->eh_info.err_mask))  				qc->flags |= ATA_QCFLAG_FAILED;  		} @@ -161,8 +161,8 @@ static void sas_ata_task_done(struct sas_task *task)  				qc->flags |= ATA_QCFLAG_FAILED;  			} -			dev->sata_dev.tf.feature = 0x04; /* status err */ -			dev->sata_dev.tf.command = ATA_ERR; +			dev->sata_dev.fis[3] = 0x04; /* status err */ +			dev->sata_dev.fis[2] = ATA_ERR;  		}  	} @@ -269,7 +269,7 @@ static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc)  {  	struct domain_device *dev = qc->ap->private_data; -	memcpy(&qc->result_tf, &dev->sata_dev.tf, sizeof(qc->result_tf)); +	ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf);  	return true;  } | 
