[U-Boot] [PATCH] fs/fat: Fix 'CACHE: Misaligned operation at range' warnings
Tom Rini
trini at konsulko.com
Tue Sep 26 14:49:26 UTC 2017
On Tue, Sep 26, 2017 at 03:21:25PM +0300, Tuomas Tynkkynen wrote:
> The 'block' field of fat_itr needs to be properly aligned for DMA and
> while it does have '__aligned(ARCH_DMA_MINALIGN)', the fat_itr structure
> itself needs to be properly aligned as well.
>
> While at it use malloc_cache_aligned() for other aligned allocations in
> the file.
>
> Fixes: 2460098cffacd1 ("fs/fat: Reduce stack usage")
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>
> ---
> fs/fat/fat.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/fat/fat.c b/fs/fat/fat.c
> index 3d3e17e8fa..35941c1498 100644
> --- a/fs/fat/fat.c
> +++ b/fs/fat/fat.c
> @@ -495,7 +495,7 @@ read_bootsectandvi(boot_sector *bs, volume_info *volinfo, int *fatsize)
> return -1;
> }
>
> - block = memalign(ARCH_DMA_MINALIGN, cur_dev->blksz);
> + block = malloc_cache_aligned(cur_dev->blksz);
> if (block == NULL) {
> debug("Error: allocating block\n");
> return -1;
> @@ -599,7 +599,7 @@ static int get_fs_info(fsdata *mydata)
>
> mydata->fatbufnum = -1;
> mydata->fat_dirty = 0;
> - mydata->fatbuf = memalign(ARCH_DMA_MINALIGN, FATBUFSIZE);
> + mydata->fatbuf = malloc_cache_aligned(FATBUFSIZE);
> if (mydata->fatbuf == NULL) {
> debug("Error: allocating memory\n");
> return -1;
> @@ -1038,7 +1038,7 @@ int fat_exists(const char *filename)
> fat_itr *itr;
> int ret;
>
> - itr = malloc(sizeof(fat_itr));
> + itr = malloc_cache_aligned(sizeof(fat_itr));
> ret = fat_itr_root(itr, &fsdata);
> if (ret)
> return 0;
Coverity has informed me that I also introduced a resource leak here by
not freeing on failure of fat_itr_root (in each case). Can you please
v2 where those are freed and add Reported-by: Coverity (CID: 167225,
167233, 167234) ? Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170926/32a3683c/attachment.sig>
More information about the U-Boot
mailing list