ipmi: kcs_bmc_aspeed: Fix less than zero comparison of a unsigned int
authorColin Ian King <colin.king@canonical.com>
Wed, 16 Jun 2021 16:29:13 +0000 (17:29 +0100)
committerCorey Minyard <cminyard@mvista.com>
Tue, 22 Jun 2021 00:50:36 +0000 (19:50 -0500)
The comparisons of the unsigned int hw_type to less than zero always
false because it is unsigned. Fix this by using an int for the
assignment and less than zero check.

Addresses-Coverity: ("Unsigned compared against 0")
Fixes: 9d2df9a0ad80 ("ipmi: kcs_bmc_aspeed: Implement KCS SerIRQ configuration")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Message-Id: <20210616162913.15259-1-colin.king@canonical.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/kcs_bmc_aspeed.c

index 0401089..92a37b3 100644 (file)
@@ -301,13 +301,15 @@ static inline int aspeed_kcs_map_serirq_type(u32 dt_type)
 static int aspeed_kcs_config_upstream_irq(struct aspeed_kcs_bmc *priv, u32 id, u32 dt_type)
 {
        unsigned int mask, val, hw_type;
+       int ret;
 
        if (id > 15)
                return -EINVAL;
 
-       hw_type = aspeed_kcs_map_serirq_type(dt_type);
-       if (hw_type < 0)
-               return hw_type;
+       ret = aspeed_kcs_map_serirq_type(dt_type);
+       if (ret < 0)
+               return ret;
+       hw_type = ret;
 
        priv->upstream_irq.mode = aspeed_kcs_irq_serirq;
        priv->upstream_irq.id = id;