[U-Boot] [PATCH please test] fs/fat: reduce stack usage for SPL

Rob Clark robdclark at gmail.com
Sun Sep 17 13:38:04 UTC 2017


It seems like stack usage is a problem for SPL builds.  So move itrblock
off the stack.

Please test this and see if it helps w/ current issues with SPL builds.
Long term, I'm not sure if it is better to do this conditional on SPL
builds, or move to malloc()?  At any rate, if this fixes SPL builds it
should be a perfectly ok short term solution.

Signed-off-by: Rob Clark <robdclark at gmail.com>
---
 fs/fat/fat.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index f0284398b4..93140c9bcb 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -1031,10 +1031,12 @@ int file_fat_detectfs(void)
 	return 0;
 }
 
+static fat_itr itrblock;
+
 int fat_exists(const char *filename)
 {
 	fsdata fsdata;
-	fat_itr itrblock, *itr = &itrblock;
+	fat_itr *itr = &itrblock;
 	int ret;
 
 	ret = fat_itr_root(itr, &fsdata);
@@ -1049,7 +1051,7 @@ int fat_exists(const char *filename)
 int fat_size(const char *filename, loff_t *size)
 {
 	fsdata fsdata;
-	fat_itr itrblock, *itr = &itrblock;
+	fat_itr *itr = &itrblock;
 	int ret;
 
 	ret = fat_itr_root(itr, &fsdata);
@@ -1081,7 +1083,7 @@ int file_fat_read_at(const char *filename, loff_t pos, void *buffer,
 		     loff_t maxsize, loff_t *actread)
 {
 	fsdata fsdata;
-	fat_itr itrblock, *itr = &itrblock;
+	fat_itr *itr = &itrblock;
 	int ret;
 
 	ret = fat_itr_root(itr, &fsdata);
-- 
2.13.5



More information about the U-Boot mailing list