diff mbox series

image-fit: don't set compression if it can't be read

Message ID YvoiI9gVKYop4Y/A@makrotopia.org
State Changes Requested
Delegated to: Tom Rini
Headers show
Series image-fit: don't set compression if it can't be read | expand

Commit Message

Daniel Golle Aug. 15, 2022, 10:38 a.m. UTC
fit_image_get_comp() should not set value -1 in case it can't read
the compression node. Instead, leave the value untouched in that case
as it can be absent and a default value previously defined by the
caller of fit_image_get_comp() should be used.

As a result the warning message
WARNING: 'compression' nodes for ramdisks are deprecated, please fix your .its file!
no longer shows if the compression node is actually absent.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
 boot/bootm.c     | 6 ++----
 boot/image-fit.c | 3 +--
 cmd/ximg.c       | 7 ++-----
 3 files changed, 5 insertions(+), 11 deletions(-)

Comments

Simon Glass Aug. 15, 2022, 5:37 p.m. UTC | #1
On Mon, 15 Aug 2022 at 04:39, Daniel Golle <daniel@makrotopia.org> wrote:
>
> fit_image_get_comp() should not set value -1 in case it can't read
> the compression node. Instead, leave the value untouched in that case
> as it can be absent and a default value previously defined by the
> caller of fit_image_get_comp() should be used.
>
> As a result the warning message
> WARNING: 'compression' nodes for ramdisks are deprecated, please fix your .its file!
> no longer shows if the compression node is actually absent.
>
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> ---
>  boot/bootm.c     | 6 ++----
>  boot/image-fit.c | 3 +--
>  cmd/ximg.c       | 7 ++-----
>  3 files changed, 5 insertions(+), 11 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini Aug. 26, 2022, 9:11 p.m. UTC | #2
On Mon, Aug 15, 2022 at 12:38:27PM +0200, Daniel Golle wrote:

> fit_image_get_comp() should not set value -1 in case it can't read
> the compression node. Instead, leave the value untouched in that case
> as it can be absent and a default value previously defined by the
> caller of fit_image_get_comp() should be used.
> 
> As a result the warning message
> WARNING: 'compression' nodes for ramdisks are deprecated, please fix your .its file!
> no longer shows if the compression node is actually absent.
> 
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> Reviewed-by: Simon Glass <sjg@chromium.org>

This causes most platforms to fail to build with an error such as:
https://source.denx.de/u-boot/u-boot/-/jobs/486959#L140
diff mbox series

Patch

diff --git a/boot/bootm.c b/boot/bootm.c
index 86dbfbcfed..b659825305 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -1024,10 +1024,8 @@  static int bootm_host_load_image(const void *fit, int req_image_type,
 		return -EINVAL;
 	}
 
-	if (fit_image_get_comp(fit, noffset, &imape_comp)) {
-		puts("Can't get image compression!\n");
-		return -EINVAL;
-	}
+	if (fit_image_get_comp(fit, noffset, &imape_comp))
+		image_comp = IH_COMP_NONE;
 
 	/* Allow the image to expand by a factor of 4, should be safe */
 	buf_size = (1 << 20) + len * 4;
diff --git a/boot/image-fit.c b/boot/image-fit.c
index df3e5df883..21dbd05118 100644
--- a/boot/image-fit.c
+++ b/boot/image-fit.c
@@ -477,7 +477,7 @@  void fit_print_contents(const void *fit)
 void fit_image_print(const void *fit, int image_noffset, const char *p)
 {
 	char *desc;
-	uint8_t type, arch, os, comp;
+	uint8_t type, arch, os, comp = IH_COMP_NONE;
 	size_t size;
 	ulong load, entry;
 	const void *data;
@@ -794,7 +794,6 @@  int fit_image_get_comp(const void *fit, int noffset, uint8_t *comp)
 	data = fdt_getprop(fit, noffset, FIT_COMP_PROP, &len);
 	if (data == NULL) {
 		fit_get_debug(fit, noffset, FIT_COMP_PROP, len);
-		*comp = -1;
 		return -1;
 	}
 
diff --git a/cmd/ximg.c b/cmd/ximg.c
index 65ba41320a..f84141ff45 100644
--- a/cmd/ximg.c
+++ b/cmd/ximg.c
@@ -171,11 +171,8 @@  do_imgextract(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 			return 1;
 		}
 
-		if (fit_image_get_comp(fit_hdr, noffset, &comp)) {
-			puts("Could not find script subimage "
-				"compression type\n");
-			return 1;
-		}
+		if (fit_image_get_comp(fit_hdr, noffset, &comp))
+			comp = IH_COMP_NONE;
 
 		data = (ulong)fit_data;
 		len = (ulong)fit_len;