diff options
-rw-r--r-- | drivers/scsi/hpsa.c | 7 | ||||
-rw-r--r-- | drivers/scsi/hpsa_cmd.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 1bef1da273c2..8068520cf89e 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c | |||
@@ -4940,7 +4940,7 @@ static int hpsa_scsi_ioaccel2_queue_command(struct ctlr_info *h, | |||
4940 | curr_sg->reserved[0] = 0; | 4940 | curr_sg->reserved[0] = 0; |
4941 | curr_sg->reserved[1] = 0; | 4941 | curr_sg->reserved[1] = 0; |
4942 | curr_sg->reserved[2] = 0; | 4942 | curr_sg->reserved[2] = 0; |
4943 | curr_sg->chain_indicator = 0x80; | 4943 | curr_sg->chain_indicator = IOACCEL2_CHAIN; |
4944 | 4944 | ||
4945 | curr_sg = h->ioaccel2_cmd_sg_list[c->cmdindex]; | 4945 | curr_sg = h->ioaccel2_cmd_sg_list[c->cmdindex]; |
4946 | } | 4946 | } |
@@ -4957,6 +4957,11 @@ static int hpsa_scsi_ioaccel2_queue_command(struct ctlr_info *h, | |||
4957 | curr_sg++; | 4957 | curr_sg++; |
4958 | } | 4958 | } |
4959 | 4959 | ||
4960 | /* | ||
4961 | * Set the last s/g element bit | ||
4962 | */ | ||
4963 | (curr_sg - 1)->chain_indicator = IOACCEL2_LAST_SG; | ||
4964 | |||
4960 | switch (cmd->sc_data_direction) { | 4965 | switch (cmd->sc_data_direction) { |
4961 | case DMA_TO_DEVICE: | 4966 | case DMA_TO_DEVICE: |
4962 | cp->direction &= ~IOACCEL2_DIRECTION_MASK; | 4967 | cp->direction &= ~IOACCEL2_DIRECTION_MASK; |
diff --git a/drivers/scsi/hpsa_cmd.h b/drivers/scsi/hpsa_cmd.h index 21a726e2eec6..f6afca4b2319 100644 --- a/drivers/scsi/hpsa_cmd.h +++ b/drivers/scsi/hpsa_cmd.h | |||
@@ -517,6 +517,7 @@ struct ioaccel2_sg_element { | |||
517 | u8 reserved[3]; | 517 | u8 reserved[3]; |
518 | u8 chain_indicator; | 518 | u8 chain_indicator; |
519 | #define IOACCEL2_CHAIN 0x80 | 519 | #define IOACCEL2_CHAIN 0x80 |
520 | #define IOACCEL2_LAST_SG 0x40 | ||
520 | }; | 521 | }; |
521 | 522 | ||
522 | /* | 523 | /* |