[SCSI] replace sizeof sense_buffer with SCSI_SENSE_BUFFERSIZE
This replaces sizeof sense_buffer with SCSI_SENSE_BUFFERSIZE in several LLDs. It's a preparation for the future changes to remove sense_buffer array in scsi_cmnd structure. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Родитель
94aa5e5f62
Коммит
b80ca4f7ee
|
@ -111,7 +111,7 @@ int mptscsih_suspend(struct pci_dev *pdev, pm_message_t state);
|
||||||
int mptscsih_resume(struct pci_dev *pdev);
|
int mptscsih_resume(struct pci_dev *pdev);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SNS_LEN(scp) sizeof((scp)->sense_buffer)
|
#define SNS_LEN(scp) SCSI_SENSE_BUFFERSIZE
|
||||||
|
|
||||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -370,7 +370,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m,
|
||||||
*/
|
*/
|
||||||
if (cmd->result)
|
if (cmd->result)
|
||||||
memcpy(cmd->sense_buffer, &msg->body[3],
|
memcpy(cmd->sense_buffer, &msg->body[3],
|
||||||
min(sizeof(cmd->sense_buffer), (size_t) 40));
|
min(SCSI_SENSE_BUFFERSIZE, 40));
|
||||||
|
|
||||||
/* only output error code if AdapterStatus is not HBA_SUCCESS */
|
/* only output error code if AdapterStatus is not HBA_SUCCESS */
|
||||||
if ((error >> 8) & 0xff)
|
if ((error >> 8) & 0xff)
|
||||||
|
|
|
@ -608,7 +608,8 @@ NCR_700_scsi_done(struct NCR_700_Host_Parameters *hostdata,
|
||||||
scsi_print_sense("53c700", SCp);
|
scsi_print_sense("53c700", SCp);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
dma_unmap_single(hostdata->dev, slot->dma_handle, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE);
|
dma_unmap_single(hostdata->dev, slot->dma_handle,
|
||||||
|
SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
/* restore the old result if the request sense was
|
/* restore the old result if the request sense was
|
||||||
* successful */
|
* successful */
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
|
@ -1010,7 +1011,7 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
|
||||||
cmnd[1] = (SCp->device->lun & 0x7) << 5;
|
cmnd[1] = (SCp->device->lun & 0x7) << 5;
|
||||||
cmnd[2] = 0;
|
cmnd[2] = 0;
|
||||||
cmnd[3] = 0;
|
cmnd[3] = 0;
|
||||||
cmnd[4] = sizeof(SCp->sense_buffer);
|
cmnd[4] = SCSI_SENSE_BUFFERSIZE;
|
||||||
cmnd[5] = 0;
|
cmnd[5] = 0;
|
||||||
/* Here's a quiet hack: the
|
/* Here's a quiet hack: the
|
||||||
* REQUEST_SENSE command is six bytes,
|
* REQUEST_SENSE command is six bytes,
|
||||||
|
@ -1024,14 +1025,14 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
|
||||||
SCp->cmd_len = 6; /* command length for
|
SCp->cmd_len = 6; /* command length for
|
||||||
* REQUEST_SENSE */
|
* REQUEST_SENSE */
|
||||||
slot->pCmd = dma_map_single(hostdata->dev, cmnd, MAX_COMMAND_SIZE, DMA_TO_DEVICE);
|
slot->pCmd = dma_map_single(hostdata->dev, cmnd, MAX_COMMAND_SIZE, DMA_TO_DEVICE);
|
||||||
slot->dma_handle = dma_map_single(hostdata->dev, SCp->sense_buffer, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE);
|
slot->dma_handle = dma_map_single(hostdata->dev, SCp->sense_buffer, SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
slot->SG[0].ins = bS_to_host(SCRIPT_MOVE_DATA_IN | sizeof(SCp->sense_buffer));
|
slot->SG[0].ins = bS_to_host(SCRIPT_MOVE_DATA_IN | SCSI_SENSE_BUFFERSIZE);
|
||||||
slot->SG[0].pAddr = bS_to_host(slot->dma_handle);
|
slot->SG[0].pAddr = bS_to_host(slot->dma_handle);
|
||||||
slot->SG[1].ins = bS_to_host(SCRIPT_RETURN);
|
slot->SG[1].ins = bS_to_host(SCRIPT_RETURN);
|
||||||
slot->SG[1].pAddr = 0;
|
slot->SG[1].pAddr = 0;
|
||||||
slot->resume_offset = hostdata->pScript;
|
slot->resume_offset = hostdata->pScript;
|
||||||
dma_cache_sync(hostdata->dev, slot->SG, sizeof(slot->SG[0])*2, DMA_TO_DEVICE);
|
dma_cache_sync(hostdata->dev, slot->SG, sizeof(slot->SG[0])*2, DMA_TO_DEVICE);
|
||||||
dma_cache_sync(hostdata->dev, SCp->sense_buffer, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE);
|
dma_cache_sync(hostdata->dev, SCp->sense_buffer, SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
|
|
||||||
/* queue the command for reissue */
|
/* queue the command for reissue */
|
||||||
slot->state = NCR_700_SLOT_QUEUED;
|
slot->state = NCR_700_SLOT_QUEUED;
|
||||||
|
|
|
@ -2947,7 +2947,7 @@ static int BusLogic_QueueCommand(struct scsi_cmnd *Command, void (*CompletionRou
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memcpy(CCB->CDB, CDB, CDB_Length);
|
memcpy(CCB->CDB, CDB, CDB_Length);
|
||||||
CCB->SenseDataLength = sizeof(Command->sense_buffer);
|
CCB->SenseDataLength = SCSI_SENSE_BUFFERSIZE;
|
||||||
CCB->SenseDataPointer = pci_map_single(HostAdapter->PCI_Device, Command->sense_buffer, CCB->SenseDataLength, PCI_DMA_FROMDEVICE);
|
CCB->SenseDataPointer = pci_map_single(HostAdapter->PCI_Device, Command->sense_buffer, CCB->SenseDataLength, PCI_DMA_FROMDEVICE);
|
||||||
CCB->Command = Command;
|
CCB->Command = Command;
|
||||||
Command->scsi_done = CompletionRoutine;
|
Command->scsi_done = CompletionRoutine;
|
||||||
|
|
|
@ -912,8 +912,8 @@ static int aac_bounds_32(struct aac_dev * dev, struct scsi_cmnd * cmd, u64 lba)
|
||||||
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
||||||
0, 0);
|
0, 0);
|
||||||
memcpy(cmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
memcpy(cmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
||||||
(sizeof(dev->fsa_dev[cid].sense_data) > sizeof(cmd->sense_buffer))
|
(sizeof(dev->fsa_dev[cid].sense_data) > SCSI_SENSE_BUFFERSIZE)
|
||||||
? sizeof(cmd->sense_buffer)
|
? SCSI_SENSE_BUFFERSIZE
|
||||||
: sizeof(dev->fsa_dev[cid].sense_data));
|
: sizeof(dev->fsa_dev[cid].sense_data));
|
||||||
cmd->scsi_done(cmd);
|
cmd->scsi_done(cmd);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1525,8 +1525,8 @@ static void io_callback(void *context, struct fib * fibptr)
|
||||||
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
||||||
0, 0);
|
0, 0);
|
||||||
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
||||||
(sizeof(dev->fsa_dev[cid].sense_data) > sizeof(scsicmd->sense_buffer))
|
(sizeof(dev->fsa_dev[cid].sense_data) > SCSI_SENSE_BUFFERSIZE)
|
||||||
? sizeof(scsicmd->sense_buffer)
|
? SCSI_SENSE_BUFFERSIZE
|
||||||
: sizeof(dev->fsa_dev[cid].sense_data));
|
: sizeof(dev->fsa_dev[cid].sense_data));
|
||||||
}
|
}
|
||||||
aac_fib_complete(fibptr);
|
aac_fib_complete(fibptr);
|
||||||
|
@ -1739,8 +1739,8 @@ static void synchronize_callback(void *context, struct fib *fibptr)
|
||||||
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
ASENCODE_INTERNAL_TARGET_FAILURE, 0, 0,
|
||||||
0, 0);
|
0, 0);
|
||||||
memcpy(cmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
memcpy(cmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
||||||
min(sizeof(dev->fsa_dev[cid].sense_data),
|
min_t(size_t, sizeof(dev->fsa_dev[cid].sense_data),
|
||||||
sizeof(cmd->sense_buffer)));
|
SCSI_SENSE_BUFFERSIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
aac_fib_complete(fibptr);
|
aac_fib_complete(fibptr);
|
||||||
|
@ -1949,8 +1949,8 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
|
||||||
SENCODE_INVALID_COMMAND,
|
SENCODE_INVALID_COMMAND,
|
||||||
ASENCODE_INVALID_COMMAND, 0, 0, 0, 0);
|
ASENCODE_INVALID_COMMAND, 0, 0, 0, 0);
|
||||||
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
||||||
(sizeof(dev->fsa_dev[cid].sense_data) > sizeof(scsicmd->sense_buffer))
|
(sizeof(dev->fsa_dev[cid].sense_data) > SCSI_SENSE_BUFFERSIZE)
|
||||||
? sizeof(scsicmd->sense_buffer)
|
? SCSI_SENSE_BUFFERSIZE
|
||||||
: sizeof(dev->fsa_dev[cid].sense_data));
|
: sizeof(dev->fsa_dev[cid].sense_data));
|
||||||
scsicmd->scsi_done(scsicmd);
|
scsicmd->scsi_done(scsicmd);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2002,8 +2002,8 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
|
||||||
memcpy(scsicmd->sense_buffer,
|
memcpy(scsicmd->sense_buffer,
|
||||||
&dev->fsa_dev[cid].sense_data,
|
&dev->fsa_dev[cid].sense_data,
|
||||||
(sizeof(dev->fsa_dev[cid].sense_data) >
|
(sizeof(dev->fsa_dev[cid].sense_data) >
|
||||||
sizeof(scsicmd->sense_buffer))
|
SCSI_SENSE_BUFFERSIZE)
|
||||||
? sizeof(scsicmd->sense_buffer)
|
? SCSI_SENSE_BUFFERSIZE
|
||||||
: sizeof(dev->fsa_dev[cid].sense_data));
|
: sizeof(dev->fsa_dev[cid].sense_data));
|
||||||
}
|
}
|
||||||
scsicmd->scsi_done(scsicmd);
|
scsicmd->scsi_done(scsicmd);
|
||||||
|
@ -2259,8 +2259,8 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
|
||||||
ILLEGAL_REQUEST, SENCODE_INVALID_COMMAND,
|
ILLEGAL_REQUEST, SENCODE_INVALID_COMMAND,
|
||||||
ASENCODE_INVALID_COMMAND, 0, 0, 0, 0);
|
ASENCODE_INVALID_COMMAND, 0, 0, 0, 0);
|
||||||
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
memcpy(scsicmd->sense_buffer, &dev->fsa_dev[cid].sense_data,
|
||||||
(sizeof(dev->fsa_dev[cid].sense_data) > sizeof(scsicmd->sense_buffer))
|
(sizeof(dev->fsa_dev[cid].sense_data) > SCSI_SENSE_BUFFERSIZE)
|
||||||
? sizeof(scsicmd->sense_buffer)
|
? SCSI_SENSE_BUFFERSIZE
|
||||||
: sizeof(dev->fsa_dev[cid].sense_data));
|
: sizeof(dev->fsa_dev[cid].sense_data));
|
||||||
scsicmd->scsi_done(scsicmd);
|
scsicmd->scsi_done(scsicmd);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2422,8 +2422,8 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
|
||||||
int len;
|
int len;
|
||||||
printk(KERN_WARNING "aac_srb_callback: srb failed, status = %d\n", le32_to_cpu(srbreply->status));
|
printk(KERN_WARNING "aac_srb_callback: srb failed, status = %d\n", le32_to_cpu(srbreply->status));
|
||||||
len = (le32_to_cpu(srbreply->sense_data_size) >
|
len = (le32_to_cpu(srbreply->sense_data_size) >
|
||||||
sizeof(scsicmd->sense_buffer)) ?
|
SCSI_SENSE_BUFFERSIZE) ?
|
||||||
sizeof(scsicmd->sense_buffer) :
|
SCSI_SENSE_BUFFERSIZE :
|
||||||
le32_to_cpu(srbreply->sense_data_size);
|
le32_to_cpu(srbreply->sense_data_size);
|
||||||
scsicmd->result = DID_ERROR << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_CHECK_CONDITION;
|
scsicmd->result = DID_ERROR << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_CHECK_CONDITION;
|
||||||
memcpy(scsicmd->sense_buffer, srbreply->sense_data, len);
|
memcpy(scsicmd->sense_buffer, srbreply->sense_data, len);
|
||||||
|
@ -2528,8 +2528,8 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
|
||||||
int len;
|
int len;
|
||||||
scsicmd->result |= SAM_STAT_CHECK_CONDITION;
|
scsicmd->result |= SAM_STAT_CHECK_CONDITION;
|
||||||
len = (le32_to_cpu(srbreply->sense_data_size) >
|
len = (le32_to_cpu(srbreply->sense_data_size) >
|
||||||
sizeof(scsicmd->sense_buffer)) ?
|
SCSI_SENSE_BUFFERSIZE) ?
|
||||||
sizeof(scsicmd->sense_buffer) :
|
SCSI_SENSE_BUFFERSIZE :
|
||||||
le32_to_cpu(srbreply->sense_data_size);
|
le32_to_cpu(srbreply->sense_data_size);
|
||||||
#ifdef AAC_DETAILED_STATUS_INFO
|
#ifdef AAC_DETAILED_STATUS_INFO
|
||||||
printk(KERN_WARNING "aac_srb_callback: check condition, status = %d len=%d\n",
|
printk(KERN_WARNING "aac_srb_callback: check condition, status = %d len=%d\n",
|
||||||
|
|
|
@ -8233,7 +8233,7 @@ static void adv_isr_callback(ADV_DVC_VAR *adv_dvc_varp, ADV_SCSI_REQ_Q *scsiqp)
|
||||||
if (scsiqp->scsi_status == SAM_STAT_CHECK_CONDITION) {
|
if (scsiqp->scsi_status == SAM_STAT_CHECK_CONDITION) {
|
||||||
ASC_DBG(2, "SAM_STAT_CHECK_CONDITION\n");
|
ASC_DBG(2, "SAM_STAT_CHECK_CONDITION\n");
|
||||||
ASC_DBG_PRT_SENSE(2, scp->sense_buffer,
|
ASC_DBG_PRT_SENSE(2, scp->sense_buffer,
|
||||||
sizeof(scp->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
/*
|
/*
|
||||||
* Note: The 'status_byte()' macro used by
|
* Note: The 'status_byte()' macro used by
|
||||||
* target drivers defined in scsi.h shifts the
|
* target drivers defined in scsi.h shifts the
|
||||||
|
@ -9136,7 +9136,7 @@ static void asc_isr_callback(ASC_DVC_VAR *asc_dvc_varp, ASC_QDONE_INFO *qdonep)
|
||||||
BUG_ON(asc_dvc_varp != &boardp->dvc_var.asc_dvc_var);
|
BUG_ON(asc_dvc_varp != &boardp->dvc_var.asc_dvc_var);
|
||||||
|
|
||||||
dma_unmap_single(boardp->dev, scp->SCp.dma_handle,
|
dma_unmap_single(boardp->dev, scp->SCp.dma_handle,
|
||||||
sizeof(scp->sense_buffer), DMA_FROM_DEVICE);
|
SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
/*
|
/*
|
||||||
* 'qdonep' contains the command's ending status.
|
* 'qdonep' contains the command's ending status.
|
||||||
*/
|
*/
|
||||||
|
@ -9166,7 +9166,7 @@ static void asc_isr_callback(ASC_DVC_VAR *asc_dvc_varp, ASC_QDONE_INFO *qdonep)
|
||||||
if (qdonep->d3.scsi_stat == SAM_STAT_CHECK_CONDITION) {
|
if (qdonep->d3.scsi_stat == SAM_STAT_CHECK_CONDITION) {
|
||||||
ASC_DBG(2, "SAM_STAT_CHECK_CONDITION\n");
|
ASC_DBG(2, "SAM_STAT_CHECK_CONDITION\n");
|
||||||
ASC_DBG_PRT_SENSE(2, scp->sense_buffer,
|
ASC_DBG_PRT_SENSE(2, scp->sense_buffer,
|
||||||
sizeof(scp->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
/*
|
/*
|
||||||
* Note: The 'status_byte()' macro used by
|
* Note: The 'status_byte()' macro used by
|
||||||
* target drivers defined in scsi.h shifts the
|
* target drivers defined in scsi.h shifts the
|
||||||
|
@ -9881,9 +9881,9 @@ static __le32 advansys_get_sense_buffer_dma(struct scsi_cmnd *scp)
|
||||||
{
|
{
|
||||||
struct asc_board *board = shost_priv(scp->device->host);
|
struct asc_board *board = shost_priv(scp->device->host);
|
||||||
scp->SCp.dma_handle = dma_map_single(board->dev, scp->sense_buffer,
|
scp->SCp.dma_handle = dma_map_single(board->dev, scp->sense_buffer,
|
||||||
sizeof(scp->sense_buffer), DMA_FROM_DEVICE);
|
SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
dma_cache_sync(board->dev, scp->sense_buffer,
|
dma_cache_sync(board->dev, scp->sense_buffer,
|
||||||
sizeof(scp->sense_buffer), DMA_FROM_DEVICE);
|
SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE);
|
||||||
return cpu_to_le32(scp->SCp.dma_handle);
|
return cpu_to_le32(scp->SCp.dma_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9914,7 +9914,7 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
|
||||||
asc_scsi_q->q2.target_ix =
|
asc_scsi_q->q2.target_ix =
|
||||||
ASC_TIDLUN_TO_IX(scp->device->id, scp->device->lun);
|
ASC_TIDLUN_TO_IX(scp->device->id, scp->device->lun);
|
||||||
asc_scsi_q->q1.sense_addr = advansys_get_sense_buffer_dma(scp);
|
asc_scsi_q->q1.sense_addr = advansys_get_sense_buffer_dma(scp);
|
||||||
asc_scsi_q->q1.sense_len = sizeof(scp->sense_buffer);
|
asc_scsi_q->q1.sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there are any outstanding requests for the current target,
|
* If there are any outstanding requests for the current target,
|
||||||
|
@ -10173,7 +10173,7 @@ adv_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
|
||||||
scsiqp->target_lun = scp->device->lun;
|
scsiqp->target_lun = scp->device->lun;
|
||||||
|
|
||||||
scsiqp->sense_addr = cpu_to_le32(virt_to_bus(&scp->sense_buffer[0]));
|
scsiqp->sense_addr = cpu_to_le32(virt_to_bus(&scp->sense_buffer[0]));
|
||||||
scsiqp->sense_len = sizeof(scp->sense_buffer);
|
scsiqp->sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
/* Build ADV_SCSI_REQ_Q */
|
/* Build ADV_SCSI_REQ_Q */
|
||||||
|
|
||||||
|
|
|
@ -536,7 +536,7 @@ static void aha1542_intr_handle(struct Scsi_Host *shost, void *dev_id)
|
||||||
we will still have it in the cdb when we come back */
|
we will still have it in the cdb when we come back */
|
||||||
if (ccb[mbo].tarstat == 2)
|
if (ccb[mbo].tarstat == 2)
|
||||||
memcpy(SCtmp->sense_buffer, &ccb[mbo].cdb[ccb[mbo].cdblen],
|
memcpy(SCtmp->sense_buffer, &ccb[mbo].cdb[ccb[mbo].cdblen],
|
||||||
sizeof(SCtmp->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
|
|
||||||
/* is there mail :-) */
|
/* is there mail :-) */
|
||||||
|
@ -609,7 +609,7 @@ static int aha1542_queuecommand(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||||
#if 0
|
#if 0
|
||||||
/* scsi_request_sense() provides a buffer of size 256,
|
/* scsi_request_sense() provides a buffer of size 256,
|
||||||
so there is no reason to expect equality */
|
so there is no reason to expect equality */
|
||||||
if (bufflen != sizeof(SCpnt->sense_buffer))
|
if (bufflen != SCSI_SENSE_BUFFERSIZE)
|
||||||
printk(KERN_CRIT "aha1542: Wrong buffer length supplied "
|
printk(KERN_CRIT "aha1542: Wrong buffer length supplied "
|
||||||
"for request sense (%d)\n", bufflen);
|
"for request sense (%d)\n", bufflen);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -286,7 +286,7 @@ static irqreturn_t aha1740_intr_handle(int irq, void *dev_id)
|
||||||
cdb when we come back */
|
cdb when we come back */
|
||||||
if ( (adapstat & G2INTST_MASK) == G2INTST_CCBERROR ) {
|
if ( (adapstat & G2INTST_MASK) == G2INTST_CCBERROR ) {
|
||||||
memcpy(SCtmp->sense_buffer, ecbptr->sense,
|
memcpy(SCtmp->sense_buffer, ecbptr->sense,
|
||||||
sizeof(SCtmp->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
errstatus = aha1740_makecode(ecbptr->sense,ecbptr->status);
|
errstatus = aha1740_makecode(ecbptr->sense,ecbptr->status);
|
||||||
} else
|
} else
|
||||||
errstatus = 0;
|
errstatus = 0;
|
||||||
|
|
|
@ -1784,7 +1784,7 @@ ahd_linux_handle_scsi_status(struct ahd_softc *ahd,
|
||||||
if (scb->flags & SCB_SENSE) {
|
if (scb->flags & SCB_SENSE) {
|
||||||
sense_size = min(sizeof(struct scsi_sense_data)
|
sense_size = min(sizeof(struct scsi_sense_data)
|
||||||
- ahd_get_sense_residual(scb),
|
- ahd_get_sense_residual(scb),
|
||||||
(u_long)sizeof(cmd->sense_buffer));
|
(u_long)SCSI_SENSE_BUFFERSIZE);
|
||||||
sense_offset = 0;
|
sense_offset = 0;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
|
@ -1795,11 +1795,11 @@ ahd_linux_handle_scsi_status(struct ahd_softc *ahd,
|
||||||
scb->sense_data;
|
scb->sense_data;
|
||||||
sense_size = min_t(size_t,
|
sense_size = min_t(size_t,
|
||||||
scsi_4btoul(siu->sense_length),
|
scsi_4btoul(siu->sense_length),
|
||||||
sizeof(cmd->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
sense_offset = SIU_SENSE_OFFSET(siu);
|
sense_offset = SIU_SENSE_OFFSET(siu);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(cmd->sense_buffer, 0, sizeof(cmd->sense_buffer));
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
memcpy(cmd->sense_buffer,
|
memcpy(cmd->sense_buffer,
|
||||||
ahd_get_sense_buf(ahd, scb)
|
ahd_get_sense_buf(ahd, scb)
|
||||||
+ sense_offset, sense_size);
|
+ sense_offset, sense_size);
|
||||||
|
|
|
@ -1801,12 +1801,12 @@ ahc_linux_handle_scsi_status(struct ahc_softc *ahc,
|
||||||
|
|
||||||
sense_size = min(sizeof(struct scsi_sense_data)
|
sense_size = min(sizeof(struct scsi_sense_data)
|
||||||
- ahc_get_sense_residual(scb),
|
- ahc_get_sense_residual(scb),
|
||||||
(u_long)sizeof(cmd->sense_buffer));
|
(u_long)SCSI_SENSE_BUFFERSIZE);
|
||||||
memcpy(cmd->sense_buffer,
|
memcpy(cmd->sense_buffer,
|
||||||
ahc_get_sense_buf(ahc, scb), sense_size);
|
ahc_get_sense_buf(ahc, scb), sense_size);
|
||||||
if (sense_size < sizeof(cmd->sense_buffer))
|
if (sense_size < SCSI_SENSE_BUFFERSIZE)
|
||||||
memset(&cmd->sense_buffer[sense_size], 0,
|
memset(&cmd->sense_buffer[sense_size], 0,
|
||||||
sizeof(cmd->sense_buffer) - sense_size);
|
SCSI_SENSE_BUFFERSIZE - sense_size);
|
||||||
cmd->result |= (DRIVER_SENSE << 24);
|
cmd->result |= (DRIVER_SENSE << 24);
|
||||||
#ifdef AHC_DEBUG
|
#ifdef AHC_DEBUG
|
||||||
if (ahc_debug & AHC_SHOW_SENSE) {
|
if (ahc_debug & AHC_SHOW_SENSE) {
|
||||||
|
|
|
@ -2696,7 +2696,7 @@ aic7xxx_done(struct aic7xxx_host *p, struct aic7xxx_scb *scb)
|
||||||
{
|
{
|
||||||
pci_unmap_single(p->pdev,
|
pci_unmap_single(p->pdev,
|
||||||
le32_to_cpu(scb->sg_list[0].address),
|
le32_to_cpu(scb->sg_list[0].address),
|
||||||
sizeof(cmd->sense_buffer),
|
SCSI_SENSE_BUFFERSIZE,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
}
|
}
|
||||||
if (scb->flags & SCB_RECOVERY_SCB)
|
if (scb->flags & SCB_RECOVERY_SCB)
|
||||||
|
@ -4267,13 +4267,13 @@ aic7xxx_handle_seqint(struct aic7xxx_host *p, unsigned char intstat)
|
||||||
sizeof(generic_sense));
|
sizeof(generic_sense));
|
||||||
|
|
||||||
scb->sense_cmd[1] = (cmd->device->lun << 5);
|
scb->sense_cmd[1] = (cmd->device->lun << 5);
|
||||||
scb->sense_cmd[4] = sizeof(cmd->sense_buffer);
|
scb->sense_cmd[4] = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
scb->sg_list[0].length =
|
scb->sg_list[0].length =
|
||||||
cpu_to_le32(sizeof(cmd->sense_buffer));
|
cpu_to_le32(SCSI_SENSE_BUFFERSIZE);
|
||||||
scb->sg_list[0].address =
|
scb->sg_list[0].address =
|
||||||
cpu_to_le32(pci_map_single(p->pdev, cmd->sense_buffer,
|
cpu_to_le32(pci_map_single(p->pdev, cmd->sense_buffer,
|
||||||
sizeof(cmd->sense_buffer),
|
SCSI_SENSE_BUFFERSIZE,
|
||||||
PCI_DMA_FROMDEVICE));
|
PCI_DMA_FROMDEVICE));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -4296,7 +4296,7 @@ aic7xxx_handle_seqint(struct aic7xxx_host *p, unsigned char intstat)
|
||||||
hscb->residual_data_count[2] = 0;
|
hscb->residual_data_count[2] = 0;
|
||||||
|
|
||||||
scb->sg_count = hscb->SG_segment_count = 1;
|
scb->sg_count = hscb->SG_segment_count = 1;
|
||||||
scb->sg_length = sizeof(cmd->sense_buffer);
|
scb->sg_length = SCSI_SENSE_BUFFERSIZE;
|
||||||
scb->tag_action = 0;
|
scb->tag_action = 0;
|
||||||
scb->flags |= SCB_SENSE;
|
scb->flags |= SCB_SENSE;
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -634,9 +634,9 @@ static void arcmsr_report_sense_info(struct CommandControlBlock *ccb)
|
||||||
pcmd->result = DID_OK << 16;
|
pcmd->result = DID_OK << 16;
|
||||||
if (sensebuffer) {
|
if (sensebuffer) {
|
||||||
int sense_data_length =
|
int sense_data_length =
|
||||||
sizeof(struct SENSE_DATA) < sizeof(pcmd->sense_buffer)
|
sizeof(struct SENSE_DATA) < SCSI_SENSE_BUFFERSIZE
|
||||||
? sizeof(struct SENSE_DATA) : sizeof(pcmd->sense_buffer);
|
? sizeof(struct SENSE_DATA) : SCSI_SENSE_BUFFERSIZE;
|
||||||
memset(sensebuffer, 0, sizeof(pcmd->sense_buffer));
|
memset(sensebuffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
memcpy(sensebuffer, ccb->arcmsr_cdb.SenseData, sense_data_length);
|
memcpy(sensebuffer, ccb->arcmsr_cdb.SenseData, sense_data_length);
|
||||||
sensebuffer->ErrorCode = SCSI_SENSE_CURRENT_ERRORS;
|
sensebuffer->ErrorCode = SCSI_SENSE_CURRENT_ERRORS;
|
||||||
sensebuffer->Valid = 1;
|
sensebuffer->Valid = 1;
|
||||||
|
|
|
@ -1629,8 +1629,7 @@ static u8 start_scsi(struct AdapterCtlBlk* acb, struct DeviceCtlBlk* dcb,
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, (dcb->target_lun << 5));
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, (dcb->target_lun << 5));
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO,
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, SCSI_SENSE_BUFFERSIZE);
|
||||||
sizeof(srb->cmd->sense_buffer));
|
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
} else {
|
} else {
|
||||||
ptr = (u8 *)srb->cmd->cmnd;
|
ptr = (u8 *)srb->cmd->cmnd;
|
||||||
|
@ -1915,8 +1914,7 @@ static void command_phase1(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb,
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, (dcb->target_lun << 5));
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, (dcb->target_lun << 5));
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO,
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, SCSI_SENSE_BUFFERSIZE);
|
||||||
sizeof(srb->cmd->sense_buffer));
|
|
||||||
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 0);
|
||||||
}
|
}
|
||||||
srb->state |= SRB_COMMAND;
|
srb->state |= SRB_COMMAND;
|
||||||
|
@ -3685,7 +3683,7 @@ static void request_sense(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,
|
||||||
srb->target_status = 0;
|
srb->target_status = 0;
|
||||||
|
|
||||||
/* KG: Can this prevent crap sense data ? */
|
/* KG: Can this prevent crap sense data ? */
|
||||||
memset(cmd->sense_buffer, 0, sizeof(cmd->sense_buffer));
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
/* Save some data */
|
/* Save some data */
|
||||||
srb->segment_x[DC395x_MAX_SG_LISTENTRY - 1].address =
|
srb->segment_x[DC395x_MAX_SG_LISTENTRY - 1].address =
|
||||||
|
@ -3694,15 +3692,15 @@ static void request_sense(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,
|
||||||
srb->segment_x[0].length;
|
srb->segment_x[0].length;
|
||||||
srb->xferred = srb->total_xfer_length;
|
srb->xferred = srb->total_xfer_length;
|
||||||
/* srb->segment_x : a one entry of S/G list table */
|
/* srb->segment_x : a one entry of S/G list table */
|
||||||
srb->total_xfer_length = sizeof(cmd->sense_buffer);
|
srb->total_xfer_length = SCSI_SENSE_BUFFERSIZE;
|
||||||
srb->segment_x[0].length = sizeof(cmd->sense_buffer);
|
srb->segment_x[0].length = SCSI_SENSE_BUFFERSIZE;
|
||||||
/* Map sense buffer */
|
/* Map sense buffer */
|
||||||
srb->segment_x[0].address =
|
srb->segment_x[0].address =
|
||||||
pci_map_single(acb->dev, cmd->sense_buffer,
|
pci_map_single(acb->dev, cmd->sense_buffer,
|
||||||
sizeof(cmd->sense_buffer), PCI_DMA_FROMDEVICE);
|
SCSI_SENSE_BUFFERSIZE, PCI_DMA_FROMDEVICE);
|
||||||
dprintkdbg(DBG_SG, "request_sense: map buffer %p->%08x(%05x)\n",
|
dprintkdbg(DBG_SG, "request_sense: map buffer %p->%08x(%05x)\n",
|
||||||
cmd->sense_buffer, srb->segment_x[0].address,
|
cmd->sense_buffer, srb->segment_x[0].address,
|
||||||
sizeof(cmd->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
srb->sg_count = 1;
|
srb->sg_count = 1;
|
||||||
srb->sg_index = 0;
|
srb->sg_index = 0;
|
||||||
|
|
||||||
|
|
|
@ -2296,9 +2296,8 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
|
||||||
|
|
||||||
// copy over the request sense data if it was a check
|
// copy over the request sense data if it was a check
|
||||||
// condition status
|
// condition status
|
||||||
if(dev_status == 0x02 /*CHECK_CONDITION*/) {
|
if (dev_status == 0x02 /*CHECK_CONDITION*/) {
|
||||||
u32 len = sizeof(cmd->sense_buffer);
|
u32 len = min(SCSI_SENSE_BUFFERSIZE, 40);
|
||||||
len = (len > 40) ? 40 : len;
|
|
||||||
// Copy over the sense data
|
// Copy over the sense data
|
||||||
memcpy_fromio(cmd->sense_buffer, (reply+28) , len);
|
memcpy_fromio(cmd->sense_buffer, (reply+28) , len);
|
||||||
if(cmd->sense_buffer[0] == 0x70 /* class 7 */ &&
|
if(cmd->sense_buffer[0] == 0x70 /* class 7 */ &&
|
||||||
|
|
|
@ -1623,9 +1623,9 @@ static void map_dma(unsigned int i, struct hostdata *ha)
|
||||||
if (SCpnt->sense_buffer)
|
if (SCpnt->sense_buffer)
|
||||||
cpp->sense_addr =
|
cpp->sense_addr =
|
||||||
H2DEV(pci_map_single(ha->pdev, SCpnt->sense_buffer,
|
H2DEV(pci_map_single(ha->pdev, SCpnt->sense_buffer,
|
||||||
sizeof SCpnt->sense_buffer, PCI_DMA_FROMDEVICE));
|
SCSI_SENSE_BUFFERSIZE, PCI_DMA_FROMDEVICE));
|
||||||
|
|
||||||
cpp->sense_len = sizeof SCpnt->sense_buffer;
|
cpp->sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
count = scsi_dma_map(SCpnt);
|
count = scsi_dma_map(SCpnt);
|
||||||
BUG_ON(count < 0);
|
BUG_ON(count < 0);
|
||||||
|
|
|
@ -574,7 +574,7 @@ static void hptiop_finish_scsi_req(struct hptiop_hba *hba, u32 tag,
|
||||||
scsi_bufflen(scp) - le32_to_cpu(req->dataxfer_length));
|
scsi_bufflen(scp) - le32_to_cpu(req->dataxfer_length));
|
||||||
scp->result = SAM_STAT_CHECK_CONDITION;
|
scp->result = SAM_STAT_CHECK_CONDITION;
|
||||||
memcpy(&scp->sense_buffer, &req->sg_list,
|
memcpy(&scp->sense_buffer, &req->sg_list,
|
||||||
min_t(size_t, sizeof(scp->sense_buffer),
|
min_t(size_t, SCSI_SENSE_BUFFERSIZE,
|
||||||
le32_to_cpu(req->dataxfer_length)));
|
le32_to_cpu(req->dataxfer_length)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -3433,13 +3433,11 @@ ips_map_status(ips_ha_t * ha, ips_scb_t * scb, ips_stat_t * sp)
|
||||||
(IPS_DCDB_TABLE_TAPE *) & scb->dcdb;
|
(IPS_DCDB_TABLE_TAPE *) & scb->dcdb;
|
||||||
memcpy(scb->scsi_cmd->sense_buffer,
|
memcpy(scb->scsi_cmd->sense_buffer,
|
||||||
tapeDCDB->sense_info,
|
tapeDCDB->sense_info,
|
||||||
sizeof (scb->scsi_cmd->
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
sense_buffer));
|
|
||||||
} else {
|
} else {
|
||||||
memcpy(scb->scsi_cmd->sense_buffer,
|
memcpy(scb->scsi_cmd->sense_buffer,
|
||||||
scb->dcdb.sense_info,
|
scb->dcdb.sense_info,
|
||||||
sizeof (scb->scsi_cmd->
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
sense_buffer));
|
|
||||||
}
|
}
|
||||||
device_error = 2; /* check condition */
|
device_error = 2; /* check condition */
|
||||||
}
|
}
|
||||||
|
|
|
@ -4963,7 +4963,8 @@ void ncr_complete (struct ncb *np, struct ccb *cp)
|
||||||
** Copy back sense data to caller's buffer.
|
** Copy back sense data to caller's buffer.
|
||||||
*/
|
*/
|
||||||
memcpy(cmd->sense_buffer, cp->sense_buf,
|
memcpy(cmd->sense_buffer, cp->sense_buf,
|
||||||
min(sizeof(cmd->sense_buffer), sizeof(cp->sense_buf)));
|
min_t(size_t, SCSI_SENSE_BUFFERSIZE,
|
||||||
|
sizeof(cp->sense_buf)));
|
||||||
|
|
||||||
if (DEBUG_FLAGS & (DEBUG_RESULT|DEBUG_TINY)) {
|
if (DEBUG_FLAGS & (DEBUG_RESULT|DEBUG_TINY)) {
|
||||||
u_char * p = (u_char*) & cmd->sense_buffer;
|
u_char * p = (u_char*) & cmd->sense_buffer;
|
||||||
|
|
|
@ -528,7 +528,7 @@ __setup("qla1280=", qla1280_setup);
|
||||||
#define CMD_CDBLEN(Cmnd) Cmnd->cmd_len
|
#define CMD_CDBLEN(Cmnd) Cmnd->cmd_len
|
||||||
#define CMD_CDBP(Cmnd) Cmnd->cmnd
|
#define CMD_CDBP(Cmnd) Cmnd->cmnd
|
||||||
#define CMD_SNSP(Cmnd) Cmnd->sense_buffer
|
#define CMD_SNSP(Cmnd) Cmnd->sense_buffer
|
||||||
#define CMD_SNSLEN(Cmnd) sizeof(Cmnd->sense_buffer)
|
#define CMD_SNSLEN(Cmnd) SCSI_SENSE_BUFFERSIZE
|
||||||
#define CMD_RESULT(Cmnd) Cmnd->result
|
#define CMD_RESULT(Cmnd) Cmnd->result
|
||||||
#define CMD_HANDLE(Cmnd) Cmnd->host_scribble
|
#define CMD_HANDLE(Cmnd) Cmnd->host_scribble
|
||||||
#define CMD_REQUEST(Cmnd) Cmnd->request->cmd
|
#define CMD_REQUEST(Cmnd) Cmnd->request->cmd
|
||||||
|
@ -3715,7 +3715,7 @@ qla1280_status_entry(struct scsi_qla_host *ha, struct response *pkt,
|
||||||
} else
|
} else
|
||||||
sense_sz = 0;
|
sense_sz = 0;
|
||||||
memset(cmd->sense_buffer + sense_sz, 0,
|
memset(cmd->sense_buffer + sense_sz, 0,
|
||||||
sizeof(cmd->sense_buffer) - sense_sz);
|
SCSI_SENSE_BUFFERSIZE - sense_sz);
|
||||||
|
|
||||||
dprintk(2, "qla1280_status_entry: Check "
|
dprintk(2, "qla1280_status_entry: Check "
|
||||||
"condition Sense data, b %i, t %i, "
|
"condition Sense data, b %i, t %i, "
|
||||||
|
|
|
@ -977,13 +977,13 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Copy Sense Data into sense buffer. */
|
/* Copy Sense Data into sense buffer. */
|
||||||
memset(cp->sense_buffer, 0, sizeof(cp->sense_buffer));
|
memset(cp->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
if (!(scsi_status & SS_SENSE_LEN_VALID))
|
if (!(scsi_status & SS_SENSE_LEN_VALID))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (sense_len >= sizeof(cp->sense_buffer))
|
if (sense_len >= SCSI_SENSE_BUFFERSIZE)
|
||||||
sense_len = sizeof(cp->sense_buffer);
|
sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
CMD_ACTUAL_SNSLEN(cp) = sense_len;
|
CMD_ACTUAL_SNSLEN(cp) = sense_len;
|
||||||
sp->request_sense_length = sense_len;
|
sp->request_sense_length = sense_len;
|
||||||
|
@ -1061,13 +1061,13 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Copy Sense Data into sense buffer */
|
/* Copy Sense Data into sense buffer */
|
||||||
memset(cp->sense_buffer, 0, sizeof(cp->sense_buffer));
|
memset(cp->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
if (!(scsi_status & SS_SENSE_LEN_VALID))
|
if (!(scsi_status & SS_SENSE_LEN_VALID))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (sense_len >= sizeof(cp->sense_buffer))
|
if (sense_len >= SCSI_SENSE_BUFFERSIZE)
|
||||||
sense_len = sizeof(cp->sense_buffer);
|
sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
CMD_ACTUAL_SNSLEN(cp) = sense_len;
|
CMD_ACTUAL_SNSLEN(cp) = sense_len;
|
||||||
sp->request_sense_length = sense_len;
|
sp->request_sense_length = sense_len;
|
||||||
|
|
|
@ -123,15 +123,14 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Copy Sense Data into sense buffer. */
|
/* Copy Sense Data into sense buffer. */
|
||||||
memset(cmd->sense_buffer, 0, sizeof(cmd->sense_buffer));
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
sensebytecnt = le16_to_cpu(sts_entry->senseDataByteCnt);
|
sensebytecnt = le16_to_cpu(sts_entry->senseDataByteCnt);
|
||||||
if (sensebytecnt == 0)
|
if (sensebytecnt == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
memcpy(cmd->sense_buffer, sts_entry->senseData,
|
memcpy(cmd->sense_buffer, sts_entry->senseData,
|
||||||
min(sensebytecnt,
|
min_t(uint16_t, sensebytecnt, SCSI_SENSE_BUFFERSIZE));
|
||||||
(uint16_t) sizeof(cmd->sense_buffer)));
|
|
||||||
|
|
||||||
DEBUG2(printk("scsi%ld:%d:%d:%d: %s: sense key = %x, "
|
DEBUG2(printk("scsi%ld:%d:%d:%d: %s: sense key = %x, "
|
||||||
"ASC/ASCQ = %02x/%02x\n", ha->host_no,
|
"ASC/ASCQ = %02x/%02x\n", ha->host_no,
|
||||||
|
@ -208,8 +207,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Copy Sense Data into sense buffer. */
|
/* Copy Sense Data into sense buffer. */
|
||||||
memset(cmd->sense_buffer, 0,
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
sizeof(cmd->sense_buffer));
|
|
||||||
|
|
||||||
sensebytecnt =
|
sensebytecnt =
|
||||||
le16_to_cpu(sts_entry->senseDataByteCnt);
|
le16_to_cpu(sts_entry->senseDataByteCnt);
|
||||||
|
@ -217,8 +215,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
memcpy(cmd->sense_buffer, sts_entry->senseData,
|
memcpy(cmd->sense_buffer, sts_entry->senseData,
|
||||||
min(sensebytecnt,
|
min_t(uint16_t, sensebytecnt, SCSI_SENSE_BUFFERSIZE));
|
||||||
(uint16_t) sizeof(cmd->sense_buffer)));
|
|
||||||
|
|
||||||
DEBUG2(printk("scsi%ld:%d:%d:%d: %s: sense key = %x, "
|
DEBUG2(printk("scsi%ld:%d:%d:%d: %s: sense key = %x, "
|
||||||
"ASC/ASCQ = %02x/%02x\n", ha->host_no,
|
"ASC/ASCQ = %02x/%02x\n", ha->host_no,
|
||||||
|
|
|
@ -1142,7 +1142,7 @@ static struct scsi_cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti)
|
||||||
|
|
||||||
if (sts->state_flags & SF_GOT_SENSE)
|
if (sts->state_flags & SF_GOT_SENSE)
|
||||||
memcpy(Cmnd->sense_buffer, sts->req_sense_data,
|
memcpy(Cmnd->sense_buffer, sts->req_sense_data,
|
||||||
sizeof(Cmnd->sense_buffer));
|
SCSI_SENSE_BUFFERSIZE);
|
||||||
|
|
||||||
if (sts->hdr.entry_type == ENTRY_STATUS)
|
if (sts->hdr.entry_type == ENTRY_STATUS)
|
||||||
Cmnd->result =
|
Cmnd->result =
|
||||||
|
|
|
@ -625,7 +625,7 @@ void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses,
|
||||||
|
|
||||||
if (sense_bytes) {
|
if (sense_bytes) {
|
||||||
scmd->request_bufflen = min_t(unsigned,
|
scmd->request_bufflen = min_t(unsigned,
|
||||||
sizeof(scmd->sense_buffer), sense_bytes);
|
SCSI_SENSE_BUFFERSIZE, sense_bytes);
|
||||||
sg_init_one(&ses->sense_sgl, scmd->sense_buffer,
|
sg_init_one(&ses->sense_sgl, scmd->sense_buffer,
|
||||||
scmd->request_bufflen);
|
scmd->request_bufflen);
|
||||||
scmd->request_buffer = &ses->sense_sgl;
|
scmd->request_buffer = &ses->sense_sgl;
|
||||||
|
@ -657,7 +657,7 @@ void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses,
|
||||||
* Zero the sense buffer. The scsi spec mandates that any
|
* Zero the sense buffer. The scsi spec mandates that any
|
||||||
* untransferred sense data should be interpreted as being zero.
|
* untransferred sense data should be interpreted as being zero.
|
||||||
*/
|
*/
|
||||||
memset(scmd->sense_buffer, 0, sizeof(scmd->sense_buffer));
|
memset(scmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(scsi_eh_prep_cmnd);
|
EXPORT_SYMBOL(scsi_eh_prep_cmnd);
|
||||||
|
|
||||||
|
@ -1820,7 +1820,7 @@ int scsi_command_normalize_sense(struct scsi_cmnd *cmd,
|
||||||
struct scsi_sense_hdr *sshdr)
|
struct scsi_sense_hdr *sshdr)
|
||||||
{
|
{
|
||||||
return scsi_normalize_sense(cmd->sense_buffer,
|
return scsi_normalize_sense(cmd->sense_buffer,
|
||||||
sizeof(cmd->sense_buffer), sshdr);
|
SCSI_SENSE_BUFFERSIZE, sshdr);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(scsi_command_normalize_sense);
|
EXPORT_SYMBOL(scsi_command_normalize_sense);
|
||||||
|
|
||||||
|
|
|
@ -441,7 +441,7 @@ static void scsi_init_cmd_errh(struct scsi_cmnd *cmd)
|
||||||
{
|
{
|
||||||
cmd->serial_number = 0;
|
cmd->serial_number = 0;
|
||||||
cmd->resid = 0;
|
cmd->resid = 0;
|
||||||
memset(cmd->sense_buffer, 0, sizeof cmd->sense_buffer);
|
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
if (cmd->cmd_len == 0)
|
if (cmd->cmd_len == 0)
|
||||||
cmd->cmd_len = COMMAND_SIZE(cmd->cmnd[0]);
|
cmd->cmd_len = COMMAND_SIZE(cmd->cmnd[0]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,10 +207,9 @@ void sym_set_cam_result_error(struct sym_hcb *np, struct sym_ccb *cp, int resid)
|
||||||
/*
|
/*
|
||||||
* Bounce back the sense data to user.
|
* Bounce back the sense data to user.
|
||||||
*/
|
*/
|
||||||
memset(&cmd->sense_buffer, 0, sizeof(cmd->sense_buffer));
|
memset(&cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
|
||||||
memcpy(cmd->sense_buffer, cp->sns_bbuf,
|
memcpy(cmd->sense_buffer, cp->sns_bbuf,
|
||||||
min(sizeof(cmd->sense_buffer),
|
min(SCSI_SENSE_BUFFERSIZE, SYM_SNS_BBUF_LEN));
|
||||||
(size_t)SYM_SNS_BBUF_LEN));
|
|
||||||
#if 0
|
#if 0
|
||||||
/*
|
/*
|
||||||
* If the device reports a UNIT ATTENTION condition
|
* If the device reports a UNIT ATTENTION condition
|
||||||
|
|
|
@ -444,7 +444,7 @@ static int dc390_pci_map (struct dc390_srb* pSRB)
|
||||||
|
|
||||||
/* Map sense buffer */
|
/* Map sense buffer */
|
||||||
if (pSRB->SRBFlag & AUTO_REQSENSE) {
|
if (pSRB->SRBFlag & AUTO_REQSENSE) {
|
||||||
pSRB->pSegmentList = dc390_sg_build_single(&pSRB->Segmentx, pcmd->sense_buffer, sizeof(pcmd->sense_buffer));
|
pSRB->pSegmentList = dc390_sg_build_single(&pSRB->Segmentx, pcmd->sense_buffer, SCSI_SENSE_BUFFERSIZE);
|
||||||
pSRB->SGcount = pci_map_sg(pdev, pSRB->pSegmentList, 1,
|
pSRB->SGcount = pci_map_sg(pdev, pSRB->pSegmentList, 1,
|
||||||
DMA_FROM_DEVICE);
|
DMA_FROM_DEVICE);
|
||||||
cmdp->saved_dma_handle = sg_dma_address(pSRB->pSegmentList);
|
cmdp->saved_dma_handle = sg_dma_address(pSRB->pSegmentList);
|
||||||
|
@ -599,7 +599,7 @@ dc390_StartSCSI( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_sr
|
||||||
DC390_write8 (ScsiFifo, pDCB->TargetLUN << 5);
|
DC390_write8 (ScsiFifo, pDCB->TargetLUN << 5);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DC390_write8 (ScsiFifo, sizeof(scmd->sense_buffer));
|
DC390_write8 (ScsiFifo, SCSI_SENSE_BUFFERSIZE);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DEBUG1(printk (KERN_DEBUG "DC390: AutoReqSense !\n"));
|
DEBUG1(printk (KERN_DEBUG "DC390: AutoReqSense !\n"));
|
||||||
}
|
}
|
||||||
|
@ -1389,7 +1389,7 @@ dc390_CommandPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus
|
||||||
DC390_write8 (ScsiFifo, pDCB->TargetLUN << 5);
|
DC390_write8 (ScsiFifo, pDCB->TargetLUN << 5);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DC390_write8 (ScsiFifo, sizeof(pSRB->pcmd->sense_buffer));
|
DC390_write8 (ScsiFifo, SCSI_SENSE_BUFFERSIZE);
|
||||||
DC390_write8 (ScsiFifo, 0);
|
DC390_write8 (ScsiFifo, 0);
|
||||||
DEBUG0(printk(KERN_DEBUG "DC390: AutoReqSense (CmndPhase)!\n"));
|
DEBUG0(printk(KERN_DEBUG "DC390: AutoReqSense (CmndPhase)!\n"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1121,9 +1121,9 @@ static void map_dma(unsigned int i, unsigned int j) {
|
||||||
|
|
||||||
if (SCpnt->sense_buffer)
|
if (SCpnt->sense_buffer)
|
||||||
cpp->sense_addr = H2DEV(pci_map_single(HD(j)->pdev, SCpnt->sense_buffer,
|
cpp->sense_addr = H2DEV(pci_map_single(HD(j)->pdev, SCpnt->sense_buffer,
|
||||||
sizeof SCpnt->sense_buffer, PCI_DMA_FROMDEVICE));
|
SCSI_SENSE_BUFFERSIZE, PCI_DMA_FROMDEVICE));
|
||||||
|
|
||||||
cpp->sense_len = sizeof SCpnt->sense_buffer;
|
cpp->sense_len = SCSI_SENSE_BUFFERSIZE;
|
||||||
|
|
||||||
if (scsi_bufflen(SCpnt)) {
|
if (scsi_bufflen(SCpnt)) {
|
||||||
count = scsi_dma_map(SCpnt);
|
count = scsi_dma_map(SCpnt);
|
||||||
|
|
|
@ -741,7 +741,7 @@ static int ultrastor_queuecommand(struct scsi_cmnd *SCpnt,
|
||||||
}
|
}
|
||||||
my_mscp->command_link = 0; /*???*/
|
my_mscp->command_link = 0; /*???*/
|
||||||
my_mscp->scsi_command_link_id = 0; /*???*/
|
my_mscp->scsi_command_link_id = 0; /*???*/
|
||||||
my_mscp->length_of_sense_byte = sizeof SCpnt->sense_buffer;
|
my_mscp->length_of_sense_byte = SCSI_SENSE_BUFFERSIZE;
|
||||||
my_mscp->length_of_scsi_cdbs = SCpnt->cmd_len;
|
my_mscp->length_of_scsi_cdbs = SCpnt->cmd_len;
|
||||||
memcpy(my_mscp->scsi_cdbs, SCpnt->cmnd, my_mscp->length_of_scsi_cdbs);
|
memcpy(my_mscp->scsi_cdbs, SCpnt->cmnd, my_mscp->length_of_scsi_cdbs);
|
||||||
my_mscp->adapter_status = 0;
|
my_mscp->adapter_status = 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче