]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: stm32: Fix a signedness issue in clk_stm32_composite_determine_rate()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 10 Oct 2023 13:35:28 +0000 (16:35 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Nov 2023 08:36:59 +0000 (09:36 +0100)
commit 790437bbe0ef7e5cb5d091dd711c0d61d03945a5 upstream.

The divider_ro_round_rate() function could potentially return -EINVAL on
error but the error handling doesn't work because "rate" is unsigned.
It should be a type long.

Fixes: 06ed0fc0fbac ("clk: stm32: composite: Switch to determine_rate")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/d9a78453-9b40-48c1-830e-00751ba3ecb8@kili.mountain
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/clk/stm32/clk-stm32-core.c

index d5aa09e9fce4c2cd816f7dd75f9da3fa3c84b8dd..067b918a889456d04aa1a2ec0e4787d8f9645e26 100644 (file)
@@ -431,7 +431,7 @@ static int clk_stm32_composite_determine_rate(struct clk_hw *hw,
 {
        struct clk_stm32_composite *composite = to_clk_stm32_composite(hw);
        const struct stm32_div_cfg *divider;
-       unsigned long rate;
+       long rate;
 
        if (composite->div_id == NO_STM32_DIV)
                return 0;