diff options
author | Tejun Heo <tj@kernel.org> | 2011-09-06 00:09:05 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2011-10-07 23:46:25 -0400 |
commit | 21dba24481f70696308bd4361a7b2460c8a41965 (patch) | |
tree | 6048c5cc4abbe94282474587d6f0c418cb36951f /drivers/ata/libata-sff.c | |
parent | d86619211ed3cdf4f6abff984774b65314aba0fe (diff) |
libata: clear PIO pad area
ata_sff_data_xfer[32]() use pad area if the transfer size isn't
multiple of transfer size; however, this area wasn't cleared and
garbage data in pad area could be transferred to the device. Make
sure the pad area is cleared.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Lei Ming <tom.leiming@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/libata-sff.c')
-rw-r--r-- | drivers/ata/libata-sff.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index c24127dd6ef2..2487ea7a507a 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -569,7 +569,7 @@ unsigned int ata_sff_data_xfer(struct ata_device *dev, unsigned char *buf, | |||
569 | 569 | ||
570 | /* Transfer trailing byte, if any. */ | 570 | /* Transfer trailing byte, if any. */ |
571 | if (unlikely(buflen & 0x01)) { | 571 | if (unlikely(buflen & 0x01)) { |
572 | unsigned char pad[2]; | 572 | unsigned char pad[2] = { }; |
573 | 573 | ||
574 | /* Point buf to the tail of buffer */ | 574 | /* Point buf to the tail of buffer */ |
575 | buf += buflen - 1; | 575 | buf += buflen - 1; |
@@ -628,7 +628,7 @@ unsigned int ata_sff_data_xfer32(struct ata_device *dev, unsigned char *buf, | |||
628 | 628 | ||
629 | /* Transfer trailing bytes, if any */ | 629 | /* Transfer trailing bytes, if any */ |
630 | if (unlikely(slop)) { | 630 | if (unlikely(slop)) { |
631 | unsigned char pad[4]; | 631 | unsigned char pad[4] = { }; |
632 | 632 | ||
633 | /* Point buf to the tail of buffer */ | 633 | /* Point buf to the tail of buffer */ |
634 | buf += buflen - slop; | 634 | buf += buflen - slop; |