diff options
Diffstat (limited to 'drivers/scsi/aic94xx/aic94xx_task.c')
| -rw-r--r-- | drivers/scsi/aic94xx/aic94xx_task.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c index 532d212b6b2..59b86e260ce 100644 --- a/drivers/scsi/aic94xx/aic94xx_task.c +++ b/drivers/scsi/aic94xx/aic94xx_task.c @@ -201,7 +201,7 @@ static void asd_get_response_tasklet(struct asd_ascb *ascb,  		if (SAS_STATUS_BUF_SIZE >= sizeof(*resp)) {  			resp->frame_len = le16_to_cpu(*(__le16 *)(r+6)); -			memcpy(&resp->ending_fis[0], r+16, 24); +			memcpy(&resp->ending_fis[0], r+16, ATA_RESP_FIS_SIZE);  			ts->buf_valid_size = sizeof(*resp);  		}  	} @@ -505,7 +505,8 @@ static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task,  		scb->ssp_task.ssp_cmd.efb_prio_attr |= EFB_MASK;  	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_prio << 3);  	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_attr & 7); -	memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cdb, 16); +	memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cmd->cmnd, +	       task->ssp_task.cmd->cmd_len);  	scb->ssp_task.sister_scb = cpu_to_le16(0xFFFF);  	scb->ssp_task.conn_handle = cpu_to_le16(  | 
