drivers/clk/visconti/clkc.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)
rs_id is of unsigned type, u8. The condition rs_id >= 0 will always be
true. Remove the if-else condition and the dead code.
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
---
drivers/clk/visconti/clkc.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/visconti/clkc.c b/drivers/clk/visconti/clkc.c
index 56a8a4ffebca8..5ccf771d05985 100644
--- a/drivers/clk/visconti/clkc.c
+++ b/drivers/clk/visconti/clkc.c
@@ -147,13 +147,9 @@ int visconti_clk_register_gates(struct visconti_clk_provider *ctx,
if (!dev_name)
return -ENOMEM;
- if (clks[i].rs_id >= 0) {
- rson_offset = reset[clks[i].rs_id].rson_offset;
- rsoff_offset = reset[clks[i].rs_id].rsoff_offset;
- rs_idx = reset[clks[i].rs_id].rs_idx;
- } else {
- rson_offset = rsoff_offset = rs_idx = -1;
- }
+ rson_offset = reset[clks[i].rs_id].rson_offset;
+ rsoff_offset = reset[clks[i].rs_id].rsoff_offset;
+ rs_idx = reset[clks[i].rs_id].rs_idx;
div_clk = devm_clk_hw_register_fixed_factor(dev,
dev_name,
--
2.30.2
On Fri, Jan 28, 2022 at 09:35:27PM +0500, Muhammad Usama Anjum wrote:
> rs_id is of unsigned type, u8. The condition rs_id >= 0 will always be
> true. Remove the if-else condition and the dead code.
>
No, this isn't the right fix.
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> ---
> drivers/clk/visconti/clkc.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/clk/visconti/clkc.c b/drivers/clk/visconti/clkc.c
> index 56a8a4ffebca8..5ccf771d05985 100644
> --- a/drivers/clk/visconti/clkc.c
> +++ b/drivers/clk/visconti/clkc.c
> @@ -147,13 +147,9 @@ int visconti_clk_register_gates(struct visconti_clk_provider *ctx,
> if (!dev_name)
> return -ENOMEM;
>
> - if (clks[i].rs_id >= 0) {
> - rson_offset = reset[clks[i].rs_id].rson_offset;
> - rsoff_offset = reset[clks[i].rs_id].rsoff_offset;
> - rs_idx = reset[clks[i].rs_id].rs_idx;
> - } else {
> - rson_offset = rsoff_offset = rs_idx = -1;
> - }
> + rson_offset = reset[clks[i].rs_id].rson_offset;
> + rsoff_offset = reset[clks[i].rs_id].rsoff_offset;
> + rs_idx = reset[clks[i].rs_id].rs_idx;
With Smatch you can type:
$ smdb.py where visconti_clk_gate_table rs_id
drivers/clk/visconti/clkc-tmpv770x.c | (null) | (struct visconti_clk_gate_table)->rs_id | 0-31,255
That tells you it is assigned 255 as a global in drivers/clk/visconti/clkc-tmpv770x.c
It takes some digging to find that assignment...
drivers/clk/visconti/clkc-tmpv770x.c
175 /* PISYSTEM */
176 { TMPV770X_CLK_WRCK, "wrck",
177 clks_parent_data, ARRAY_SIZE(clks_parent_data),
178 0, 0x68, 0x168, 9, 32,
179 -1, }, /* No reset */
^^
Really, that -1 there should generate a static checker warning but it
doesn't on Smatch... :/
But the probably the correct fix is to make rs_id and related variables
and int instead of a u8. I saw this bug but just reported it instead of
fixing it.
regards,
dan carpenter
© 2016 - 2026 Red Hat, Inc.