net: dsa: mv88e6xxx: Fix sparse warnings from GENMASK
authorAndrew Lunn <andrew@lunn.ch>
Sun, 5 Jul 2020 19:38:07 +0000 (21:38 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 5 Jul 2020 22:43:01 +0000 (15:43 -0700)
Oddly, GENMASK() requires signed bit numbers, so that it can compare
them for < 0. If passed an unsigned type, we get warnings about the
test never being true.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.h

index e5430cf..1c541b0 100644 (file)
@@ -167,7 +167,7 @@ struct mv88e6xxx_irq {
        u16 masked;
        struct irq_chip chip;
        struct irq_domain *domain;
-       unsigned int nirqs;
+       int nirqs;
 };
 
 /* state flags for mv88e6xxx_port_hwtstamp::state */
@@ -654,7 +654,7 @@ static inline unsigned int mv88e6xxx_num_ports(struct mv88e6xxx_chip *chip)
 
 static inline u16 mv88e6xxx_port_mask(struct mv88e6xxx_chip *chip)
 {
-       return GENMASK(mv88e6xxx_num_ports(chip) - 1, 0);
+       return GENMASK((s32)mv88e6xxx_num_ports(chip) - 1, 0);
 }
 
 static inline unsigned int mv88e6xxx_num_gpio(struct mv88e6xxx_chip *chip)