Browse Source

libfdt: overlay: Fix comparison warning

With -Wsign-compare, compilers warn about a mismatching signedness in
a comparison in overlay_update_local_node_references().

This happens because the division of a signed int by an unsigned int
promotes the dividend to unsigned first (ANSI C standard 6.1.3.8).

As in this case we basically just divide by 4, we can do the division
separately earlier, which preserves the original type.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Message-Id: <20200921165303.9115-12-andre.przywara@arm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
Andre Przywara 4 years ago committed by David Gibson
parent
commit
07158f4cf2
  1. 3
      libfdt/fdt_overlay.c

3
libfdt/fdt_overlay.c

@ -241,6 +241,7 @@ static int overlay_update_local_node_references(void *fdto, @@ -241,6 +241,7 @@ static int overlay_update_local_node_references(void *fdto,

if (fixup_len % sizeof(uint32_t))
return -FDT_ERR_BADOVERLAY;
fixup_len /= sizeof(uint32_t);

tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
if (!tree_val) {
@ -250,7 +251,7 @@ static int overlay_update_local_node_references(void *fdto, @@ -250,7 +251,7 @@ static int overlay_update_local_node_references(void *fdto,
return tree_len;
}

for (i = 0; i < (fixup_len / sizeof(uint32_t)); i++) {
for (i = 0; i < fixup_len; i++) {
fdt32_t adj_val;
uint32_t poffset;


Loading…
Cancel
Save