irqchip/crossbar: Fix incorrect type of register size
authorFranck Demathieu <fdemathieu@gmail.com>
Mon, 6 Mar 2017 13:41:06 +0000 (14:41 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Tue, 7 Mar 2017 14:34:39 +0000 (14:34 +0000)
The 'size' variable is unsigned according to the dt-bindings.
As this variable is used as integer in other places, create a new variable
that allows to fix the following sparse issue (-Wtypesign):

  drivers/irqchip/irq-crossbar.c:279:52: warning: incorrect type in argument 3 (different signedness)
  drivers/irqchip/irq-crossbar.c:279:52:    expected unsigned int [usertype] *out_value
  drivers/irqchip/irq-crossbar.c:279:52:    got int *<noident>

Signed-off-by: Franck Demathieu <fdemathieu@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-crossbar.c

index 05bbf171df37720b7a3185e4e56dd8ee318beaf2..1070b7b959f2d1f60996492398aa2bb6ae0ac06c 100644 (file)
@@ -199,7 +199,7 @@ static const struct irq_domain_ops crossbar_domain_ops = {
 static int __init crossbar_of_init(struct device_node *node)
 {
        int i, size, reserved = 0;
-       u32 max = 0, entry;
+       u32 max = 0, entry, reg_size;
        const __be32 *irqsr;
        int ret = -ENOMEM;
 
@@ -276,9 +276,9 @@ static int __init crossbar_of_init(struct device_node *node)
        if (!cb->register_offsets)
                goto err_irq_map;
 
-       of_property_read_u32(node, "ti,reg-size", &size);
+       of_property_read_u32(node, "ti,reg-size", &reg_size);
 
-       switch (size) {
+       switch (reg_size) {
        case 1:
                cb->write = crossbar_writeb;
                break;
@@ -304,7 +304,7 @@ static int __init crossbar_of_init(struct device_node *node)
                        continue;
 
                cb->register_offsets[i] = reserved;
-               reserved += size;
+               reserved += reg_size;
        }
 
        of_property_read_u32(node, "ti,irqs-safe-map", &cb->safe_map);