2023-05-13 11:33:49

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision

Unsigned int "minor" is always >= 0 as reported by Smatch:

drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
drivers/soc/qcom/rpmh-rsc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
index f93544f6d796..0dd4363ebac8 100644
--- a/drivers/soc/qcom/rpmh-rsc.c
+++ b/drivers/soc/qcom/rpmh-rsc.c
@@ -1073,7 +1073,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev)
drv->ver.minor = rsc_id & (MINOR_VER_MASK << MINOR_VER_SHIFT);
drv->ver.minor >>= MINOR_VER_SHIFT;

- if (drv->ver.major == 3 && drv->ver.minor >= 0)
+ if (drv->ver.major == 3)
drv->regs = rpmh_rsc_reg_offset_ver_3_0;
else
drv->regs = rpmh_rsc_reg_offset_ver_2_7;
--
2.34.1



2023-05-15 03:40:19

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision

On Sat, 13 May 2023 13:29:13 +0200, Krzysztof Kozlowski wrote:
> Unsigned int "minor" is always >= 0 as reported by Smatch:
>
> drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'
>
>

Applied, thanks!

[1/1] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision
commit: 3395d36e6805786c26d13188735bc796b9d7a7c9

Best regards,
--
Bjorn Andersson <[email protected]>

2023-05-15 09:54:27

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision



On 13.05.2023 13:29, Krzysztof Kozlowski wrote:
> Unsigned int "minor" is always >= 0 as reported by Smatch:
>
> drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
I can see how it made sense from a human POV, but then it still
does with the right hand side removed..

Reviewed-by: Konrad Dybcio <[email protected]>

Konrad
> drivers/soc/qcom/rpmh-rsc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
> index f93544f6d796..0dd4363ebac8 100644
> --- a/drivers/soc/qcom/rpmh-rsc.c
> +++ b/drivers/soc/qcom/rpmh-rsc.c
> @@ -1073,7 +1073,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev)
> drv->ver.minor = rsc_id & (MINOR_VER_MASK << MINOR_VER_SHIFT);
> drv->ver.minor >>= MINOR_VER_SHIFT;
>
> - if (drv->ver.major == 3 && drv->ver.minor >= 0)
> + if (drv->ver.major == 3)
> drv->regs = rpmh_rsc_reg_offset_ver_3_0;
> else
> drv->regs = rpmh_rsc_reg_offset_ver_2_7;

2023-05-15 10:14:26

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision

On 15/05/2023 11:36, Konrad Dybcio wrote:
>
>
> On 13.05.2023 13:29, Krzysztof Kozlowski wrote:
>> Unsigned int "minor" is always >= 0 as reported by Smatch:
>>
>> drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'
>>
>> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>> ---
> I can see how it made sense from a human POV, but then it still
> does with the right hand side removed..

I would argue that for human it does not make sense. Why checking minor
for >=0? Even if minor ver could be negative (error case?), what would
that mean in that context? major ver == 3 but minor == ERRNO, so we will
have drv->regs == 2.7?

Best regards,
Krzysztof


2023-05-15 10:34:08

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: rpmh-rsc: drop redundant unsigned >=0 comparision



On 15.05.2023 12:03, Krzysztof Kozlowski wrote:
> On 15/05/2023 11:36, Konrad Dybcio wrote:
>>
>>
>> On 13.05.2023 13:29, Krzysztof Kozlowski wrote:
>>> Unsigned int "minor" is always >= 0 as reported by Smatch:
>>>
>>> drivers/soc/qcom/rpmh-rsc.c:1076 rpmh_rsc_probe() warn: always true condition '(drv->ver.minor >= 0) => (0-u32max >= 0)'
>>>
>>> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>>> ---
>> I can see how it made sense from a human POV, but then it still
>> does with the right hand side removed..
>
> I would argue that for human it does not make sense. Why checking minor
> for >=0? Even if minor ver could be negative (error case?), what would
> that mean in that context? major ver == 3 but minor == ERRNO, so we will
> have drv->regs == 2.7?
I'd say that's just a direct natural-to-computer-language translation of
"above version 3.0", but yeah it does not really make sense to check
for negative versions..

Konrad
>
> Best regards,
> Krzysztof
>