On Fri, Jun 11, 2021 at 06:10:39PM +0100, Andre Przywara wrote: > With -Wsign-compare, compilers warn about a mismatching signedness in > comparisons in various parts in checks.c. > > Fix those by making all affected variables unsigned. This covers return > values of the (unsigned) size_t type, phandles, variables holding sizes > in general and loop counters only ever counting positives values. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > --- > checks.c | 21 +++++++++++---------- > 1 file changed, 11 insertions(+), 10 deletions(-) > > diff --git a/checks.c b/checks.c > index 67647fa..e8bfe4a 100644 > --- a/checks.c > +++ b/checks.c > @@ -312,7 +312,7 @@ ERROR(duplicate_property_names, check_duplicate_property_names, NULL); > static void check_node_name_chars(struct check *c, struct dt_info *dti, > struct node *node) > { > - int n = strspn(node->name, c->data); > + size_t n = strspn(node->name, c->data); > > if (n < strlen(node->name)) > FAIL(c, dti, node, "Bad character '%c' in node name", > @@ -386,7 +386,7 @@ static void check_property_name_chars(struct check *c, struct dt_info *dti, > struct property *prop; > > for_each_property(node, prop) { > - int n = strspn(prop->name, c->data); > + size_t n = strspn(prop->name, c->data); > > if (n < strlen(prop->name)) > FAIL_PROP(c, dti, node, prop, "Bad character '%c' in property name", > @@ -403,7 +403,7 @@ static void check_property_name_chars_strict(struct check *c, > > for_each_property(node, prop) { > const char *name = prop->name; > - int n = strspn(name, c->data); > + size_t n = strspn(name, c->data); > > if (n == strlen(prop->name)) > continue; > @@ -579,7 +579,7 @@ static void check_name_properties(struct check *c, struct dt_info *dti, > if (!prop) > return; /* No name property, that's fine */ > > - if ((prop->val.len != node->basenamelen+1) > + if ((prop->val.len != node->basenamelen + 1U) > || (memcmp(prop->val.val, node->name, node->basenamelen) != 0)) { > FAIL(c, dti, node, "\"name\" property is incorrect (\"%s\" instead" > " of base node name)", prop->val.val); > @@ -1388,7 +1388,7 @@ static void check_property_phandle_args(struct check *c, > const struct provider *provider) > { > struct node *root = dti->dt; > - int cell, cellsize = 0; > + unsigned int cell, cellsize = 0; > > if (!is_multiple_of(prop->val.len, sizeof(cell_t))) { > FAIL_PROP(c, dti, node, prop, > @@ -1596,7 +1596,8 @@ static void check_interrupts_property(struct check *c, > struct node *root = dti->dt; > struct node *irq_node = NULL, *parent = node; > struct property *irq_prop, *prop = NULL; > - int irq_cells, phandle; > + int irq_cells; > + cell_t phandle; The compiler doesn't complain about it, but irq_cells should logically be a cell_t as well, might as well fix that at the same time. > > irq_prop = get_property(node, "interrupts"); > if (!irq_prop) > @@ -1762,7 +1763,7 @@ WARNING(graph_port, check_graph_port, NULL, &graph_nodes); > static struct node *get_remote_endpoint(struct check *c, struct dt_info *dti, > struct node *endpoint) > { > - int phandle; > + cell_t phandle; > struct node *node; > struct property *prop; > > @@ -1910,7 +1911,7 @@ static void enable_warning_error(struct check *c, bool warn, bool error) > > static void disable_warning_error(struct check *c, bool warn, bool error) > { > - int i; > + unsigned int i; > > /* Lowering level, also lower it for things this is the prereq > * for */ > @@ -1931,7 +1932,7 @@ static void disable_warning_error(struct check *c, bool warn, bool error) > > void parse_checks_option(bool warn, bool error, const char *arg) > { > - int i; > + unsigned int i; > const char *name = arg; > bool enable = true; > > @@ -1958,7 +1959,7 @@ void parse_checks_option(bool warn, bool error, const char *arg) > > void process_checks(bool force, struct dt_info *dti) > { > - int i; > + unsigned int i; > int error = 0; > > for (i = 0; i < ARRAY_SIZE(check_table); i++) { -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature