aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ide-scsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r--drivers/scsi/ide-scsi.c18
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) {