aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/pmcraid.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/pmcraid.c')
-rw-r--r--drivers/scsi/pmcraid.c34
1 files changed, 3 insertions, 31 deletions
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
index 2233ed6b89e3..d5fb31fa388b 100644
--- a/drivers/scsi/pmcraid.c
+++ b/drivers/scsi/pmcraid.c
@@ -3169,36 +3169,6 @@ static int pmcraid_eh_host_reset_handler(struct scsi_cmnd *scmd)
3169} 3169}
3170 3170
3171/** 3171/**
3172 * pmcraid_task_attributes - Translate SPI Q-Tags to task attributes
3173 * @scsi_cmd: scsi command struct
3174 *
3175 * Return value
3176 * number of tags or 0 if the task is not tagged
3177 */
3178static u8 pmcraid_task_attributes(struct scsi_cmnd *scsi_cmd)
3179{
3180 char tag[2];
3181 u8 rc = 0;
3182
3183 if (scsi_populate_tag_msg(scsi_cmd, tag)) {
3184 switch (tag[0]) {
3185 case MSG_SIMPLE_TAG:
3186 rc = TASK_TAG_SIMPLE;
3187 break;
3188 case MSG_HEAD_TAG:
3189 rc = TASK_TAG_QUEUE_HEAD;
3190 break;
3191 case MSG_ORDERED_TAG:
3192 rc = TASK_TAG_ORDERED;
3193 break;
3194 };
3195 }
3196
3197 return rc;
3198}
3199
3200
3201/**
3202 * pmcraid_init_ioadls - initializes IOADL related fields in IOARCB 3172 * pmcraid_init_ioadls - initializes IOADL related fields in IOARCB
3203 * @cmd: pmcraid command struct 3173 * @cmd: pmcraid command struct
3204 * @sgcount: count of scatter-gather elements 3174 * @sgcount: count of scatter-gather elements
@@ -3553,7 +3523,9 @@ static int pmcraid_queuecommand_lck(
3553 } 3523 }
3554 3524
3555 ioarcb->request_flags0 |= NO_LINK_DESCS; 3525 ioarcb->request_flags0 |= NO_LINK_DESCS;
3556 ioarcb->request_flags1 |= pmcraid_task_attributes(scsi_cmd); 3526
3527 if (scsi_cmd->flags & SCMD_TAGGED)
3528 ioarcb->request_flags1 |= TASK_TAG_SIMPLE;
3557 3529
3558 if (RES_IS_GSCSI(res->cfg_entry)) 3530 if (RES_IS_GSCSI(res->cfg_entry))
3559 ioarcb->request_flags1 |= DELAY_AFTER_RESET; 3531 ioarcb->request_flags1 |= DELAY_AFTER_RESET;