]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
clk: at91: Fix testing of unsigned variable to be negative
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Wed, 23 Jul 2025 14:13:48 +0000 (15:13 +0100)
committerEugen Hristev <eugen.hristev@linaro.org>
Wed, 13 Aug 2025 09:59:36 +0000 (12:59 +0300)
The variable 'index' is declared as unsigned but used to receive the
return value of a function returning 'int'. This value is then tested
for being less than zero to detect an error condition but as index is
unsigned this can never be true. Change the variable 'index' to be an
int so that the error condition can be detected.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
drivers/clk/at91/clk-main.c
drivers/clk/at91/clk-master.c

index a5186f885f0cbb3f5cdebef149fba3e88ce36248..0542b06678830d14a39a5eadc172b466c8424a38 100644 (file)
@@ -315,7 +315,8 @@ static int clk_sam9x5_main_set_parent(struct clk *clk, struct clk *parent)
 {
        struct clk_main *main = to_clk_main(clk);
        void __iomem *reg = main->reg;
-       unsigned int tmp, index;
+       unsigned int tmp;
+       int index;
 
        index = at91_clk_mux_val_to_index(main->clk_mux_table,
                        main->num_parents, AT91_CLK_ID_TO_DID(parent->id));
index cdc5271fa83328c183a46feef45e2e0a6c542be6..530205b8c6bee362368d0afa1bc95accd2e262a6 100644 (file)
@@ -335,8 +335,8 @@ struct clk *at91_clk_sama7g5_register_master(void __iomem *base,
 {
        struct clk_master *master;
        struct clk *clk;
-       u32 val, index;
-       int ret;
+       u32 val;
+       int ret, index;
 
        if (!base || !name || !num_parents || !parent_names ||
            !mux_table || !clk_mux_table || id > MASTER_MAX_ID)