diff options
Diffstat (limited to 'drivers/ata/pata_legacy.c')
-rw-r--r-- | drivers/ata/pata_legacy.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index fe7cc8ed4ea4..bc037ffce200 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c | |||
@@ -305,7 +305,7 @@ static unsigned int pdc_data_xfer_vlb(struct ata_device *dev, | |||
305 | iowrite32_rep(ap->ioaddr.data_addr, buf, buflen >> 2); | 305 | iowrite32_rep(ap->ioaddr.data_addr, buf, buflen >> 2); |
306 | 306 | ||
307 | if (unlikely(slop)) { | 307 | if (unlikely(slop)) { |
308 | u32 pad; | 308 | __le32 pad; |
309 | if (rw == READ) { | 309 | if (rw == READ) { |
310 | pad = cpu_to_le32(ioread32(ap->ioaddr.data_addr)); | 310 | pad = cpu_to_le32(ioread32(ap->ioaddr.data_addr)); |
311 | memcpy(buf + buflen - slop, &pad, slop); | 311 | memcpy(buf + buflen - slop, &pad, slop); |
@@ -746,14 +746,12 @@ static unsigned int vlb32_data_xfer(struct ata_device *adev, unsigned char *buf, | |||
746 | ioread32_rep(ap->ioaddr.data_addr, buf, buflen >> 2); | 746 | ioread32_rep(ap->ioaddr.data_addr, buf, buflen >> 2); |
747 | 747 | ||
748 | if (unlikely(slop)) { | 748 | if (unlikely(slop)) { |
749 | u32 pad; | 749 | __le32 pad; |
750 | if (rw == WRITE) { | 750 | if (rw == WRITE) { |
751 | memcpy(&pad, buf + buflen - slop, slop); | 751 | memcpy(&pad, buf + buflen - slop, slop); |
752 | pad = le32_to_cpu(pad); | 752 | iowrite32(le32_to_cpu(pad), ap->ioaddr.data_addr); |
753 | iowrite32(pad, ap->ioaddr.data_addr); | ||
754 | } else { | 753 | } else { |
755 | pad = ioread32(ap->ioaddr.data_addr); | 754 | pad = cpu_to_le32(ioread32(ap->ioaddr.data_addr)); |
756 | pad = cpu_to_le32(pad); | ||
757 | memcpy(buf + buflen - slop, &pad, slop); | 755 | memcpy(buf + buflen - slop, &pad, slop); |
758 | } | 756 | } |
759 | } | 757 | } |