diff options
Diffstat (limited to 'drivers/scsi/NCR53C9x.c')
| -rw-r--r-- | drivers/scsi/NCR53C9x.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/scsi/NCR53C9x.c b/drivers/scsi/NCR53C9x.c index 8a4659e94105..bdc6bb262bce 100644 --- a/drivers/scsi/NCR53C9x.c +++ b/drivers/scsi/NCR53C9x.c | |||
| @@ -911,7 +911,7 @@ static void esp_get_dmabufs(struct NCR_ESP *esp, Scsi_Cmnd *sp) | |||
| 911 | sp->SCp.ptr = | 911 | sp->SCp.ptr = |
| 912 | (char *) virt_to_phys(sp->request_buffer); | 912 | (char *) virt_to_phys(sp->request_buffer); |
| 913 | } else { | 913 | } else { |
| 914 | sp->SCp.buffer = (struct scatterlist *) sp->buffer; | 914 | sp->SCp.buffer = (struct scatterlist *) sp->request_buffer; |
| 915 | sp->SCp.buffers_residual = sp->use_sg - 1; | 915 | sp->SCp.buffers_residual = sp->use_sg - 1; |
| 916 | sp->SCp.this_residual = sp->SCp.buffer->length; | 916 | sp->SCp.this_residual = sp->SCp.buffer->length; |
| 917 | if (esp->dma_mmu_get_scsi_sgl) | 917 | if (esp->dma_mmu_get_scsi_sgl) |
| @@ -2152,29 +2152,23 @@ static int esp_do_data_finale(struct NCR_ESP *esp, | |||
| 2152 | */ | 2152 | */ |
| 2153 | static int esp_should_clear_sync(Scsi_Cmnd *sp) | 2153 | static int esp_should_clear_sync(Scsi_Cmnd *sp) |
| 2154 | { | 2154 | { |
| 2155 | unchar cmd1 = sp->cmnd[0]; | 2155 | unchar cmd = sp->cmnd[0]; |
| 2156 | unchar cmd2 = sp->data_cmnd[0]; | ||
| 2157 | 2156 | ||
| 2158 | /* These cases are for spinning up a disk and | 2157 | /* These cases are for spinning up a disk and |
| 2159 | * waiting for that spinup to complete. | 2158 | * waiting for that spinup to complete. |
| 2160 | */ | 2159 | */ |
| 2161 | if(cmd1 == START_STOP || | 2160 | if(cmd == START_STOP) |
| 2162 | cmd2 == START_STOP) | ||
| 2163 | return 0; | 2161 | return 0; |
| 2164 | 2162 | ||
| 2165 | if(cmd1 == TEST_UNIT_READY || | 2163 | if(cmd == TEST_UNIT_READY) |
| 2166 | cmd2 == TEST_UNIT_READY) | ||
| 2167 | return 0; | 2164 | return 0; |
| 2168 | 2165 | ||
| 2169 | /* One more special case for SCSI tape drives, | 2166 | /* One more special case for SCSI tape drives, |
| 2170 | * this is what is used to probe the device for | 2167 | * this is what is used to probe the device for |
| 2171 | * completion of a rewind or tape load operation. | 2168 | * completion of a rewind or tape load operation. |
| 2172 | */ | 2169 | */ |
| 2173 | if(sp->device->type == TYPE_TAPE) { | 2170 | if(sp->device->type == TYPE_TAPE && cmd == MODE_SENSE) |
| 2174 | if(cmd1 == MODE_SENSE || | 2171 | return 0; |
| 2175 | cmd2 == MODE_SENSE) | ||
| 2176 | return 0; | ||
| 2177 | } | ||
| 2178 | 2172 | ||
| 2179 | return 1; | 2173 | return 1; |
| 2180 | } | 2174 | } |
