diff options
Diffstat (limited to 'drivers/scsi/mvsas')
-rw-r--r-- | drivers/scsi/mvsas/mv_sas.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c index d79ac179eaff..f709319c2b6d 100644 --- a/drivers/scsi/mvsas/mv_sas.c +++ b/drivers/scsi/mvsas/mv_sas.c | |||
@@ -761,9 +761,11 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi, | |||
761 | flags |= MCH_FBURST; | 761 | flags |= MCH_FBURST; |
762 | fburst = (1 << 7); | 762 | fburst = (1 << 7); |
763 | } | 763 | } |
764 | hdr->flags = cpu_to_le32(flags | | 764 | if (is_tmf) |
765 | (tei->n_elem << MCH_PRD_LEN_SHIFT) | | 765 | flags |= (MCH_SSP_FR_TASK << MCH_SSP_FR_TYPE_SHIFT); |
766 | (MCH_SSP_FR_CMD << MCH_SSP_FR_TYPE_SHIFT)); | 766 | else |
767 | flags |= (MCH_SSP_FR_CMD << MCH_SSP_FR_TYPE_SHIFT); | ||
768 | hdr->flags = cpu_to_le32(flags | (tei->n_elem << MCH_PRD_LEN_SHIFT)); | ||
767 | hdr->tags = cpu_to_le32(tag); | 769 | hdr->tags = cpu_to_le32(tag); |
768 | hdr->data_len = cpu_to_le32(task->total_xfer_len); | 770 | hdr->data_len = cpu_to_le32(task->total_xfer_len); |
769 | 771 | ||