Hi Tom, On Mon, Sep 28, 2015 at 5:22 PM, Tom Rini <[email protected]> wrote: > 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 <[email protected]> > > 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).
I agree, but there is not much review activity. Do you know anyone else who might be interested in this and who should be Cc'ed? Best regards, Benoît _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

