[PATCH] drivers: clk: Adjust temp var data type to properly match that of struct clk_ops

Sean Anderson seanga2 at gmail.com
Wed Nov 1 19:27:21 CET 2023


On 5/15/23 15:49, Nathan Barrett-Morrison wrote:
> In commit 5c5992cb90cf ("clk: Add debugging for return values"), a
> temporary storage variable was added around the ops->get_rate() call
> inside clk_get_rate(), so that the result could be passed through
> log_ret.
> 
> This temporary variable was declared as an int, yet when we look in
> struct clk_ops, we can see this needs to be a ulong:
> ulong (*get_rate)(struct clk *clk);
> 
> This was resulting in a signed to unsigned casting error on our
> builds, where a clock value of 0xABCDABCD was being incorrectly cast
> to 0xFFFFFFFFABCDABCD.
> 
> Signed-off-by: Nathan Barrett-Morrison <nathan.morrison at timesys.com>
> ---
>   drivers/clk/clk-uclass.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> index dc3e9d6a26..4e3e3b8537 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -471,7 +471,7 @@ void clk_free(struct clk *clk)
>   ulong clk_get_rate(struct clk *clk)
>   {
>   	const struct clk_ops *ops;
> -	int ret;
> +	ulong ret;
>   
>   	debug("%s(clk=%p)\n", __func__, clk);
>   	if (!clk_valid(clk))

Reviewed-by: Sean Anderson <seanga2 at gmail.com>


More information about the U-Boot mailing list