diff options
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r-- | drivers/scsi/ide-scsi.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index 01f8ebf8a42e..f04f3289938d 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -184,13 +184,16 @@ static void idescsi_input_buffers (ide_drive_t *drive, idescsi_pc_t *pc, unsigne | |||
184 | unsigned long flags; | 184 | unsigned long flags; |
185 | 185 | ||
186 | local_irq_save(flags); | 186 | local_irq_save(flags); |
187 | buf = kmap_atomic(pc->sg->page, KM_IRQ0) + pc->sg->offset; | 187 | buf = kmap_atomic(pc->sg->page, KM_IRQ0) + |
188 | drive->hwif->atapi_input_bytes(drive, buf + pc->b_count, count); | 188 | pc->sg->offset; |
189 | drive->hwif->atapi_input_bytes(drive, | ||
190 | buf + pc->b_count, count); | ||
189 | kunmap_atomic(buf - pc->sg->offset, KM_IRQ0); | 191 | kunmap_atomic(buf - pc->sg->offset, KM_IRQ0); |
190 | local_irq_restore(flags); | 192 | local_irq_restore(flags); |
191 | } else { | 193 | } else { |
192 | buf = page_address(pc->sg->page) + pc->sg->offset; | 194 | buf = page_address(pc->sg->page) + pc->sg->offset; |
193 | drive->hwif->atapi_input_bytes(drive, buf + pc->b_count, count); | 195 | drive->hwif->atapi_input_bytes(drive, |
196 | buf + pc->b_count, count); | ||
194 | } | 197 | } |
195 | bcount -= count; pc->b_count += count; | 198 | bcount -= count; pc->b_count += count; |
196 | if (pc->b_count == pc->sg->length) { | 199 | if (pc->b_count == pc->sg->length) { |
@@ -216,13 +219,16 @@ static void idescsi_output_buffers (ide_drive_t *drive, idescsi_pc_t *pc, unsign | |||
216 | unsigned long flags; | 219 | unsigned long flags; |
217 | 220 | ||
218 | local_irq_save(flags); | 221 | local_irq_save(flags); |
219 | buf = kmap_atomic(pc->sg->page, KM_IRQ0) + pc->sg->offset; | 222 | buf = kmap_atomic(pc->sg->page, KM_IRQ0) + |
220 | drive->hwif->atapi_output_bytes(drive, buf + pc->b_count, count); | 223 | pc->sg->offset; |
224 | drive->hwif->atapi_output_bytes(drive, | ||
225 | buf + pc->b_count, count); | ||
221 | kunmap_atomic(buf - pc->sg->offset, KM_IRQ0); | 226 | kunmap_atomic(buf - pc->sg->offset, KM_IRQ0); |
222 | local_irq_restore(flags); | 227 | local_irq_restore(flags); |
223 | } else { | 228 | } else { |
224 | buf = page_address(pc->sg->page) + pc->sg->offset; | 229 | buf = page_address(pc->sg->page) + pc->sg->offset; |
225 | drive->hwif->atapi_output_bytes(drive, buf + pc->b_count, count); | 230 | drive->hwif->atapi_output_bytes(drive, |
231 | buf + pc->b_count, count); | ||
226 | } | 232 | } |
227 | bcount -= count; pc->b_count += count; | 233 | bcount -= count; pc->b_count += count; |
228 | if (pc->b_count == pc->sg->length) { | 234 | if (pc->b_count == pc->sg->length) { |