diff options
-rw-r--r-- | drivers/scsi/53c700.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c index 562432d017b0..335a25540c08 100644 --- a/drivers/scsi/53c700.c +++ b/drivers/scsi/53c700.c | |||
@@ -622,8 +622,10 @@ NCR_700_scsi_done(struct NCR_700_Host_Parameters *hostdata, | |||
622 | dma_unmap_single(hostdata->dev, slot->dma_handle, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE); | 622 | dma_unmap_single(hostdata->dev, slot->dma_handle, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE); |
623 | /* restore the old result if the request sense was | 623 | /* restore the old result if the request sense was |
624 | * successful */ | 624 | * successful */ |
625 | if(result == 0) | 625 | if (result == 0) |
626 | result = cmnd[7]; | 626 | result = cmnd[7]; |
627 | /* restore the original length */ | ||
628 | SCp->cmd_len = cmnd[8]; | ||
627 | } else | 629 | } else |
628 | NCR_700_unmap(hostdata, SCp, slot); | 630 | NCR_700_unmap(hostdata, SCp, slot); |
629 | 631 | ||
@@ -1007,6 +1009,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp, | |||
1007 | * of the command */ | 1009 | * of the command */ |
1008 | cmnd[6] = NCR_700_INTERNAL_SENSE_MAGIC; | 1010 | cmnd[6] = NCR_700_INTERNAL_SENSE_MAGIC; |
1009 | cmnd[7] = hostdata->status[0]; | 1011 | cmnd[7] = hostdata->status[0]; |
1012 | cmnd[8] = SCp->cmd_len; | ||
1013 | SCp->cmd_len = 6; /* command length for | ||
1014 | * REQUEST_SENSE */ | ||
1010 | slot->pCmd = dma_map_single(hostdata->dev, cmnd, MAX_COMMAND_SIZE, DMA_TO_DEVICE); | 1015 | slot->pCmd = dma_map_single(hostdata->dev, cmnd, MAX_COMMAND_SIZE, DMA_TO_DEVICE); |
1011 | slot->dma_handle = dma_map_single(hostdata->dev, SCp->sense_buffer, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE); | 1016 | slot->dma_handle = dma_map_single(hostdata->dev, SCp->sense_buffer, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE); |
1012 | slot->SG[0].ins = bS_to_host(SCRIPT_MOVE_DATA_IN | sizeof(SCp->sense_buffer)); | 1017 | slot->SG[0].ins = bS_to_host(SCRIPT_MOVE_DATA_IN | sizeof(SCp->sense_buffer)); |