diff options
author | Andy Yan <ayan@marvell.com> | 2009-05-11 08:01:55 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-05-23 16:44:07 -0400 |
commit | 2b288133ab6306b1761e0a2ef943b944ead6ad69 (patch) | |
tree | 12ac6c2a59c4719dabda748086c5fed4cc2c2428 /drivers/scsi/mvsas | |
parent | 6ff63896e5bd624d8563f4b67fe2fe06ce99c8dc (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.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 | ||