[libata] pata_rb532_cf: fix signature of the xfer function
Per definition, this function should return the number of bytes consumed. As the original parameter "buflen" is being decremented inside the read/write loop, save it in "retlen" at the beginning. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Acked-by: Sergei Shtyltov <sshtylyov@ru.mvista.com> Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
@@ -74,11 +74,12 @@ static void rb532_pata_exec_command(struct ata_port *ap,
|
|||||||
rb532_pata_finish_io(ap);
|
rb532_pata_finish_io(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
|
static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
|
||||||
unsigned int buflen, int write_data)
|
unsigned int buflen, int write_data)
|
||||||
{
|
{
|
||||||
struct ata_port *ap = adev->link->ap;
|
struct ata_port *ap = adev->link->ap;
|
||||||
void __iomem *ioaddr = ap->ioaddr.data_addr;
|
void __iomem *ioaddr = ap->ioaddr.data_addr;
|
||||||
|
int retlen = buflen;
|
||||||
|
|
||||||
if (write_data) {
|
if (write_data) {
|
||||||
for (; buflen > 0; buflen--, buf++)
|
for (; buflen > 0; buflen--, buf++)
|
||||||
@@ -89,6 +90,7 @@ static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
rb532_pata_finish_io(adev->link->ap);
|
rb532_pata_finish_io(adev->link->ap);
|
||||||
|
return retlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rb532_pata_freeze(struct ata_port *ap)
|
static void rb532_pata_freeze(struct ata_port *ap)
|
||||||
|
Reference in New Issue
Block a user