X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/0f64ffa1b68039668dce4e9be8c5d4a3ade568c1..adde7768a2eab2950a7628319ec832c63a00ff03:/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c diff --git a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c index 7dd697721..8c0a0a36c 100644 --- a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c +++ b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c @@ -68,20 +68,23 @@ static void rb153_pata_exec_command(struct ata_port *ap, rb153_pata_finish_io(ap); } -static void rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf, +static unsigned int rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf, unsigned int buflen, int write_data) { void __iomem *ioaddr = adev->link->ap->ioaddr.data_addr; - + unsigned int t; + + t = buflen; if (write_data) { - for (; buflen > 0; buflen--, buf++) + for (; t > 0; t--, buf++) writeb(*buf, ioaddr); } else { - for (; buflen > 0; buflen--, buf++) + for (; t > 0; t--, buf++) *buf = readb(ioaddr); } rb153_pata_finish_io(adev->link->ap); + return buflen; } static void rb153_pata_freeze(struct ata_port *ap)