aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mvsas
diff options
context:
space:
mode:
authorAndy Yan <ayan@marvell.com>2009-05-11 08:01:55 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-05-23 16:44:07 -0400
commit2b288133ab6306b1761e0a2ef943b944ead6ad69 (patch)
tree12ac6c2a59c4719dabda748086c5fed4cc2c2428 /drivers/scsi/mvsas
parent6ff63896e5bd624d8563f4b67fe2fe06ce99c8dc (diff)
[SCSI] mvsas: bug fix with setting task management frame type
Correct frame type setting according to parameter. Signed-off-by: Ying Chu <jasonchu@marvell.com> Signed-off-by: Andy Yan <ayan@marvell.com> Signed-off-by: Ke Wei <kewei@marvell.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/mvsas')
-rw-r--r--drivers/scsi/mvsas/mv_sas.c8
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