|
@@ -2763,22 +2763,21 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
|
|
|
local_irq_save(flags);
|
|
|
buf = kmap_atomic(page, KM_IRQ0) + offset;
|
|
|
|
|
|
- qc->cursect++;
|
|
|
- qc->cursg_ofs++;
|
|
|
-
|
|
|
- if ((qc->cursg_ofs * ATA_SECT_SIZE) == (&sg[qc->cursg])->length) {
|
|
|
- qc->cursg++;
|
|
|
- qc->cursg_ofs = 0;
|
|
|
- }
|
|
|
-
|
|
|
DPRINTK("data %s\n", qc->tf.flags & ATA_TFLAG_WRITE ? "write" : "read");
|
|
|
|
|
|
/* do the actual data transfer */
|
|
|
- do_write = (qc->tf.flags & ATA_TFLAG_WRITE);
|
|
|
ata_data_xfer(ap, buf, ATA_SECT_SIZE, do_write);
|
|
|
|
|
|
kunmap_atomic(buf - offset, KM_IRQ0);
|
|
|
local_irq_restore(flags);
|
|
|
+
|
|
|
+ qc->cursect++;
|
|
|
+ qc->cursg_ofs++;
|
|
|
+
|
|
|
+ if ((qc->cursg_ofs * ATA_SECT_SIZE) == (&sg[qc->cursg])->length) {
|
|
|
+ qc->cursg++;
|
|
|
+ qc->cursg_ofs = 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2956,6 +2955,14 @@ next_sg:
|
|
|
local_irq_save(flags);
|
|
|
buf = kmap_atomic(page, KM_IRQ0) + offset;
|
|
|
|
|
|
+ DPRINTK("data %s\n", qc->tf.flags & ATA_TFLAG_WRITE ? "write" : "read");
|
|
|
+
|
|
|
+ /* do the actual data transfer */
|
|
|
+ ata_data_xfer(ap, buf, count, do_write);
|
|
|
+
|
|
|
+ kunmap_atomic(buf - offset, KM_IRQ0);
|
|
|
+ local_irq_restore(flags);
|
|
|
+
|
|
|
bytes -= count;
|
|
|
qc->curbytes += count;
|
|
|
qc->cursg_ofs += count;
|
|
@@ -2965,14 +2972,6 @@ next_sg:
|
|
|
qc->cursg_ofs = 0;
|
|
|
}
|
|
|
|
|
|
- DPRINTK("data %s\n", qc->tf.flags & ATA_TFLAG_WRITE ? "write" : "read");
|
|
|
-
|
|
|
- /* do the actual data transfer */
|
|
|
- ata_data_xfer(ap, buf, count, do_write);
|
|
|
-
|
|
|
- kunmap_atomic(buf - offset, KM_IRQ0);
|
|
|
- local_irq_restore(flags);
|
|
|
-
|
|
|
if (bytes)
|
|
|
goto next_sg;
|
|
|
}
|