mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
fs/fat: Fix 'CACHE: Misaligned operation at range' warnings
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 the other aligned allocations
in the file as well.
Fixes: 2460098cff
("fs/fat: Reduce stack usage")
Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
99e46dfc6a
commit
09fa964bba
1 changed files with 5 additions and 5 deletions
10
fs/fat/fat.c
10
fs/fat/fat.c
|
@ -495,7 +495,7 @@ read_bootsectandvi(boot_sector *bs, volume_info *volinfo, int *fatsize)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
block = memalign(ARCH_DMA_MINALIGN, cur_dev->blksz);
|
block = malloc_cache_aligned(cur_dev->blksz);
|
||||||
if (block == NULL) {
|
if (block == NULL) {
|
||||||
debug("Error: allocating block\n");
|
debug("Error: allocating block\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -599,7 +599,7 @@ static int get_fs_info(fsdata *mydata)
|
||||||
|
|
||||||
mydata->fatbufnum = -1;
|
mydata->fatbufnum = -1;
|
||||||
mydata->fat_dirty = 0;
|
mydata->fat_dirty = 0;
|
||||||
mydata->fatbuf = memalign(ARCH_DMA_MINALIGN, FATBUFSIZE);
|
mydata->fatbuf = malloc_cache_aligned(FATBUFSIZE);
|
||||||
if (mydata->fatbuf == NULL) {
|
if (mydata->fatbuf == NULL) {
|
||||||
debug("Error: allocating memory\n");
|
debug("Error: allocating memory\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1038,7 +1038,7 @@ int fat_exists(const char *filename)
|
||||||
fat_itr *itr;
|
fat_itr *itr;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
itr = malloc(sizeof(fat_itr));
|
itr = malloc_cache_aligned(sizeof(fat_itr));
|
||||||
ret = fat_itr_root(itr, &fsdata);
|
ret = fat_itr_root(itr, &fsdata);
|
||||||
if (ret)
|
if (ret)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1055,7 +1055,7 @@ int fat_size(const char *filename, loff_t *size)
|
||||||
fat_itr *itr;
|
fat_itr *itr;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
itr = malloc(sizeof(fat_itr));
|
itr = malloc_cache_aligned(sizeof(fat_itr));
|
||||||
ret = fat_itr_root(itr, &fsdata);
|
ret = fat_itr_root(itr, &fsdata);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1089,7 +1089,7 @@ int file_fat_read_at(const char *filename, loff_t pos, void *buffer,
|
||||||
fat_itr *itr;
|
fat_itr *itr;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
itr = malloc(sizeof(fat_itr));
|
itr = malloc_cache_aligned(sizeof(fat_itr));
|
||||||
ret = fat_itr_root(itr, &fsdata);
|
ret = fat_itr_root(itr, &fsdata);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Add table
Reference in a new issue