From: Nathan Barrett-Morrison Date: Mon, 15 May 2023 19:49:58 +0000 (-0400) Subject: drivers: clk: Adjust temp var data type to properly match that of struct clk_ops X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=aed6480fadede2b87103568aaa117a423a1c3fdc;p=u-boot.git drivers: clk: Adjust temp var data type to properly match that of struct clk_ops 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 Reviewed-by: Sean Anderson Link: https://lore.kernel.org/r/20230515195005.1961495-1-nathan.morrison@timesys.com --- diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index f186fcbcdb..364ee92e7f 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -477,7 +477,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))