From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/5] fs/fat/fat_write: Fix buffer alignments
Date: Mon, 28 Sep 2015 11:22:25 -0400 [thread overview]
Message-ID: <20150928152225.GK22966@bill-the-cat> (raw)
In-Reply-To: <1443447932-14139-1-git-send-email-benoit@wsystem.com>
On Mon, Sep 28, 2015 at 03:45:28PM +0200, Beno?t Th?baudeau wrote:
> set_cluster() was using a temporary buffer without enforcing its
> alignment for DMA and cache. Moreover, it did not check the alignment of
> the passed buffer, which can come directly from applicative code or from
> the user.
>
> This could cause random data corruption, which has been observed on
> i.MX25 writing to an SD card.
>
> Fix this by only passing ARCH_DMA_MINALIGN-aligned buffers to
> disk_write(), which requires the introduction of a buffer bouncing
> mechanism for the misaligned buffers passed to set_cluster().
>
> By the way, improve the handling of the corresponding return values from
> disk_write():
> - print them with debug() in case of error,
> - consider that there is an error is disk_write() returns a smaller
> block count than the requested one, not only if its return value is
> negative.
>
> After this change, set_cluster() and get_cluster() are almost
> symmetrical.
>
> Signed-off-by: Beno?t Th?baudeau <benoit@wsystem.com>
OK. I know Stephen has a series to replace all of the FAT code for
the next release once some performance issues are addressed. But I'm
inclined to take this series (after some reviews and so forth) for this
release at least because this sounds like some bad bugs and more things
are starting to rely on fatwrite functionality (for example, env saved
as a file in FAT is getting common on community-style boards).
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150928/b03b5a69/attachment.sig>
next prev parent reply other threads:[~2015-09-28 15:22 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-12 12:46 [U-Boot] fatwrite problem Ruud Commandeur
2013-04-12 14:11 ` Mats Kärrman
2013-04-12 15:06 ` Ruud Commandeur
2013-04-12 15:12 ` Tom Rini
2013-04-12 15:23 ` Ruud Commandeur
2013-04-12 15:43 ` Tom Rini
2013-04-12 19:39 ` Benoît Thébaudeau
2013-04-12 20:42 ` Tom Rini
2013-04-12 21:17 ` Benoît Thébaudeau
2013-04-16 9:32 ` Ruud Commandeur
2013-05-14 15:13 ` Ruud Commandeur
2013-05-14 15:31 ` Tom Rini
2015-09-28 13:45 ` [U-Boot] [PATCH 1/5] fs/fat/fat_write: Fix buffer alignments Benoît Thébaudeau
2015-09-28 13:45 ` [U-Boot] [PATCH 2/5] fs/fat/fat_write: Merge calls to set_cluster() Benoît Thébaudeau
2015-10-12 15:15 ` [U-Boot] [U-Boot, " Tom Rini
2015-09-28 13:45 ` [U-Boot] [PATCH 3/5] fs/fat/fat_write: Fix curclust/newclust mix-up Benoît Thébaudeau
2015-10-12 15:15 ` [U-Boot] [U-Boot, " Tom Rini
2015-09-28 13:45 ` [U-Boot] [PATCH 4/5] fs/fat/fat_write: Factor out duplicate code Benoît Thébaudeau
2015-10-12 15:15 ` [U-Boot] [U-Boot, " Tom Rini
2015-09-28 13:45 ` [U-Boot] [PATCH 5/5] fs/fat/fat_write: Fix management of empty files Benoît Thébaudeau
2015-10-12 15:15 ` [U-Boot] [U-Boot, " Tom Rini
2015-09-28 15:22 ` Tom Rini [this message]
2015-10-07 19:48 ` [U-Boot] [PATCH 1/5] fs/fat/fat_write: Fix buffer alignments Benoît Thébaudeau
2015-10-12 15:15 ` [U-Boot] [U-Boot,1/5] " Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150928152225.GK22966@bill-the-cat \
--to=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox