
Hi Tom,
On Wed, 20 Nov 2024 at 07:50, Tom Rini trini@konsulko.com wrote:
On Tue, Nov 19, 2024 at 06:18:17AM -0700, Simon Glass wrote:
This code cannot be compiled by boards which don't have this option. Add an accessor in the header file to avoid another #ifdef
Signed-off-by: Simon Glass sjg@chromium.org
boot/bootm.c | 8 ++++---- include/bootm.h | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/boot/bootm.c b/boot/bootm.c index 16a43d519a8..0a1040ef923 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -633,11 +633,11 @@ static int bootm_load_os(struct bootm_headers *images, int boot_progress) load_buf = map_sysmem(load, 0); image_buf = map_sysmem(os.image_start, image_len); err = image_decomp(os.comp, load, os.image_start, os.type,
load_buf, image_buf, image_len,
CONFIG_SYS_BOOTM_LEN, &load_end);
load_buf, image_buf, image_len, bootm_len(),
&load_end); if (err) {
err = handle_decomp_error(os.comp, load_end - load,
CONFIG_SYS_BOOTM_LEN, err);
err = handle_decomp_error(os.comp, load_end - load, bootm_len(),
err); bootstage_error(BOOTSTAGE_ID_DECOMP_IMAGE); return err; }
diff --git a/include/bootm.h b/include/bootm.h index c471615b08c..d174f18ac18 100644 --- a/include/bootm.h +++ b/include/bootm.h @@ -89,6 +89,14 @@ struct bootm_info { #define bootm_x86_set(_bmi, _field, _val) #endif
+static inline ulong bootm_len(void) +{ +#ifdef CONFIG_SYS_BOOTM_LEN
return CONFIG_SYS_BOOTM_LEN;
+#endif
return 0;
+}
/**
- bootm_init() - Set up a bootm_info struct with useful defaults
This kind of change is wrong in that it moves a build time failure to a (potentially non-obvious) runtime failure. If we're moving to now dynamically allocating the location where we can decompress to, then it should be part of that abstraction. But that doesn't look to be the case here.
Yes, sure. The right answer is probably to split out parts of bootm.c into a new file. I already have 39 patches...it needs a bit more thought.
Regards, SImon