[libata irq-pio] reorganize ata_pio_sector() and __atapi_pio_bytes()
- move some code out of the kmap_atomic() / kunmap_atomic() zone - remove the redundant "do_write = (qc->tf.flags & ATA_TFLAG_WRITE);" Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
This commit is contained in:
parent
f58f8be7f6
commit
7282aa4b49
1 changed files with 16 additions and 17 deletions
|
@ -2763,6 +2763,14 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
|
|||
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, ATA_SECT_SIZE, do_write);
|
||||
|
||||
kunmap_atomic(buf - offset, KM_IRQ0);
|
||||
local_irq_restore(flags);
|
||||
|
||||
qc->cursect++;
|
||||
qc->cursg_ofs++;
|
||||
|
||||
|
@ -2770,15 +2778,6 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
|
|||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2956,6 +2955,14 @@ static void __atapi_pio_bytes(struct ata_queued_cmd *qc, unsigned int bytes)
|
|||
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 @@ static void __atapi_pio_bytes(struct ata_queued_cmd *qc, unsigned int bytes)
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue