aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Yan <ayan@marvell.com>2009-05-11 20:01:55 +0800
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-05-23 15:44:07 -0500
commit2b288133ab6306b1761e0a2ef943b944ead6ad69 (patch)
tree12ac6c2a59c4719dabda748086c5fed4cc2c2428
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>
-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 d79ac179eaf..f709319c2b6 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,
flags |= MCH_FBURST;
fburst = (1 << 7);
}
- hdr->flags = cpu_to_le32(flags |
- (tei->n_elem << MCH_PRD_LEN_SHIFT) |
- (MCH_SSP_FR_CMD << MCH_SSP_FR_TYPE_SHIFT));
+ if (is_tmf)
+ flags |= (MCH_SSP_FR_TASK << MCH_SSP_FR_TYPE_SHIFT);
+ else
+ flags |= (MCH_SSP_FR_CMD << MCH_SSP_FR_TYPE_SHIFT);
+ hdr->flags = cpu_to_le32(flags | (tei->n_elem << MCH_PRD_LEN_SHIFT));
hdr->tags = cpu_to_le32(tag);
hdr->data_len = cpu_to_le32(task->total_xfer_len);