public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe
@ 2022-07-06 14:26 Dan Carpenter
  2022-07-06 14:27 ` [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug Dan Carpenter
  2022-07-06 14:52 ` [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Cristian Marussi
  0 siblings, 2 replies; 6+ messages in thread
From: Dan Carpenter @ 2022-07-06 14:26 UTC (permalink / raw)
  To: Rafael J. Wysocki, Cristian Marussi
  Cc: Sudeep Holla, linux-pm, kernel-janitors

The "pr->num_zones" variable is an unsigned int so it can't be less than
zero.

Fixes: 31afdd34f2b9 ("powercap: arm_scmi: Add SCMI powercap based driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 drivers/powercap/arm_scmi_powercap.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/powercap/arm_scmi_powercap.c b/drivers/powercap/arm_scmi_powercap.c
index 2273768d70ce..ab96cf9a8604 100644
--- a/drivers/powercap/arm_scmi_powercap.c
+++ b/drivers/powercap/arm_scmi_powercap.c
@@ -425,11 +425,12 @@ static int scmi_powercap_probe(struct scmi_device *sdev)
 	if (!pr)
 		return -ENOMEM;
 
-	pr->num_zones = powercap_ops->num_domains_get(ph);
-	if (pr->num_zones < 0) {
+	ret = powercap_ops->num_domains_get(ph);
+	if (ret < 0) {
 		dev_err(dev, "number of powercap domains not found\n");
-		return pr->num_zones;
+		return ret;
 	}
+	pr->num_zones = ret;
 
 	pr->spzones = devm_kcalloc(dev, pr->num_zones,
 				   sizeof(*pr->spzones), GFP_KERNEL);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug
  2022-07-06 14:26 [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Dan Carpenter
@ 2022-07-06 14:27 ` Dan Carpenter
  2022-07-06 15:20   ` Cristian Marussi
  2022-07-06 14:52 ` [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Cristian Marussi
  1 sibling, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2022-07-06 14:27 UTC (permalink / raw)
  To: Rafael J. Wysocki, Cristian Marussi
  Cc: Sudeep Holla, linux-pm, kernel-janitors

The powercap_register_control_type() return error pointers.  It never
returns NULL.

Fixes: 31afdd34f2b9 ("powercap: arm_scmi: Add SCMI powercap based driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
This functions should really clean up after itself if scmi_register()
fails.  I need to fix the static checker for that and then I'll come
back and fix it if no one else does.

 drivers/powercap/arm_scmi_powercap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/powercap/arm_scmi_powercap.c b/drivers/powercap/arm_scmi_powercap.c
index ab96cf9a8604..2d505ec7ff81 100644
--- a/drivers/powercap/arm_scmi_powercap.c
+++ b/drivers/powercap/arm_scmi_powercap.c
@@ -519,8 +519,8 @@ static struct scmi_driver scmi_powercap_driver = {
 static int __init scmi_powercap_init(void)
 {
 	scmi_top_pcntrl = powercap_register_control_type(NULL, "arm-scmi", NULL);
-	if (!scmi_top_pcntrl)
-		return -ENODEV;
+	if (IS_ERR(scmi_top_pcntrl))
+		return PTR_ERR(scmi_top_pcntrl);
 
 	return scmi_register(&scmi_powercap_driver);
 }
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe
  2022-07-06 14:26 [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Dan Carpenter
  2022-07-06 14:27 ` [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug Dan Carpenter
@ 2022-07-06 14:52 ` Cristian Marussi
  1 sibling, 0 replies; 6+ messages in thread
From: Cristian Marussi @ 2022-07-06 14:52 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: Rafael J. Wysocki, Sudeep Holla, linux-pm, kernel-janitors

On Wed, Jul 06, 2022 at 05:26:56PM +0300, Dan Carpenter wrote:
> The "pr->num_zones" variable is an unsigned int so it can't be less than
> zero.
> 
> Fixes: 31afdd34f2b9 ("powercap: arm_scmi: Add SCMI powercap based driver")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Hi,

Thanks for having a look.

This driver has NOT been pulled in this cycle due to a lack of
reviews/feedbacks so I'll integrate your fixes in the next version.

Thanks,
Cristian

> ---
>  drivers/powercap/arm_scmi_powercap.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/powercap/arm_scmi_powercap.c b/drivers/powercap/arm_scmi_powercap.c
> index 2273768d70ce..ab96cf9a8604 100644
> --- a/drivers/powercap/arm_scmi_powercap.c
> +++ b/drivers/powercap/arm_scmi_powercap.c
> @@ -425,11 +425,12 @@ static int scmi_powercap_probe(struct scmi_device *sdev)
>  	if (!pr)
>  		return -ENOMEM;
>  
> -	pr->num_zones = powercap_ops->num_domains_get(ph);
> -	if (pr->num_zones < 0) {
> +	ret = powercap_ops->num_domains_get(ph);
> +	if (ret < 0) {
>  		dev_err(dev, "number of powercap domains not found\n");
> -		return pr->num_zones;
> +		return ret;
>  	}
> +	pr->num_zones = ret;
>  
>  	pr->spzones = devm_kcalloc(dev, pr->num_zones,
>  				   sizeof(*pr->spzones), GFP_KERNEL);
> -- 
> 2.35.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug
  2022-07-06 14:27 ` [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug Dan Carpenter
@ 2022-07-06 15:20   ` Cristian Marussi
  2022-07-06 15:32     ` Dan Carpenter
  0 siblings, 1 reply; 6+ messages in thread
From: Cristian Marussi @ 2022-07-06 15:20 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: Rafael J. Wysocki, Sudeep Holla, linux-pm, kernel-janitors

On Wed, Jul 06, 2022 at 05:27:28PM +0300, Dan Carpenter wrote:
> The powercap_register_control_type() return error pointers.  It never
> returns NULL.
> 
> Fixes: 31afdd34f2b9 ("powercap: arm_scmi: Add SCMI powercap based driver")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> This functions should really clean up after itself if scmi_register()
> fails.  I need to fix the static checker for that and then I'll come
> back and fix it if no one else does.
> 

Hi,

thanks for the fix and the suggestion to clean up better (this part was
indeed reworked in V4 and I think it's where I introduced the missing cleanup
when scmi_register fails...)

As said, the SCMI Powercap driver was NOT pulled for this cycle
due to insufficent reviews so I'll pick your fixes and suggestions
for the next version.

May I ask which static checker you use ? Sparse/smatch and W=1 did not
spot any of these issues (including other in the series) in my workflow ...

Thanks,
Cristian

>  drivers/powercap/arm_scmi_powercap.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/powercap/arm_scmi_powercap.c b/drivers/powercap/arm_scmi_powercap.c
> index ab96cf9a8604..2d505ec7ff81 100644
> --- a/drivers/powercap/arm_scmi_powercap.c
> +++ b/drivers/powercap/arm_scmi_powercap.c
> @@ -519,8 +519,8 @@ static struct scmi_driver scmi_powercap_driver = {
>  static int __init scmi_powercap_init(void)
>  {
>  	scmi_top_pcntrl = powercap_register_control_type(NULL, "arm-scmi", NULL);
> -	if (!scmi_top_pcntrl)
> -		return -ENODEV;
> +	if (IS_ERR(scmi_top_pcntrl))
> +		return PTR_ERR(scmi_top_pcntrl);
>  
>  	return scmi_register(&scmi_powercap_driver);
>  }
> -- 
> 2.35.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug
  2022-07-06 15:20   ` Cristian Marussi
@ 2022-07-06 15:32     ` Dan Carpenter
  2022-07-06 15:46       ` Cristian Marussi
  0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2022-07-06 15:32 UTC (permalink / raw)
  To: Cristian Marussi
  Cc: Rafael J. Wysocki, Sudeep Holla, linux-pm, kernel-janitors

On Wed, Jul 06, 2022 at 04:20:41PM +0100, Cristian Marussi wrote:
> May I ask which static checker you use ? Sparse/smatch and W=1 did not
> spot any of these issues (including other in the series) in my workflow ...
> 

These are Smatch warnings:

$ kchecker drivers/powercap/arm_scmi_powercap.c

Using test/ version of smatch

  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND objtool
  CC [M]  drivers/powercap/arm_scmi_powercap.o
  CHECK   drivers/powercap/arm_scmi_powercap.c
drivers/powercap/arm_scmi_powercap.c:429 scmi_powercap_probe() warn: unsigned 'pr->num_zones' is never less than zero.
drivers/powercap/arm_scmi_powercap.c:494 scmi_powercap_probe() error: uninitialized symbol 'ret'.
drivers/powercap/arm_scmi_powercap.c:521 scmi_powercap_init() warn: 'scmi_top_pcntrl' is an error pointer or valid
$

The problem is that the "is an error pointer or valid" requires the
cross function DB to work and that takes forever (over night on my
system).

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug
  2022-07-06 15:32     ` Dan Carpenter
@ 2022-07-06 15:46       ` Cristian Marussi
  0 siblings, 0 replies; 6+ messages in thread
From: Cristian Marussi @ 2022-07-06 15:46 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: Rafael J. Wysocki, Sudeep Holla, linux-pm, kernel-janitors

On Wed, Jul 06, 2022 at 06:32:33PM +0300, Dan Carpenter wrote:
> On Wed, Jul 06, 2022 at 04:20:41PM +0100, Cristian Marussi wrote:
> > May I ask which static checker you use ? Sparse/smatch and W=1 did not
> > spot any of these issues (including other in the series) in my workflow ...
> > 
> 
> These are Smatch warnings:
> 
> $ kchecker drivers/powercap/arm_scmi_powercap.c
> 
> Using test/ version of smatch
> 
>   CALL    scripts/checksyscalls.sh
>   CALL    scripts/atomic/check-atomics.sh
>   DESCEND objtool
>   CC [M]  drivers/powercap/arm_scmi_powercap.o
>   CHECK   drivers/powercap/arm_scmi_powercap.c
> drivers/powercap/arm_scmi_powercap.c:429 scmi_powercap_probe() warn: unsigned 'pr->num_zones' is never less than zero.
> drivers/powercap/arm_scmi_powercap.c:494 scmi_powercap_probe() error: uninitialized symbol 'ret'.
> drivers/powercap/arm_scmi_powercap.c:521 scmi_powercap_init() warn: 'scmi_top_pcntrl' is an error pointer or valid
> $
> 
> The problem is that the "is an error pointer or valid" requires the
> cross function DB to work and that takes forever (over night on my
> system).
> 

Thanks.

Turns out even my setup can spot it now (beside the last one), cause my workflow
self checks were targeted at where is usually rooted my work drivers/firmware/arm_scmi/

...so missing out completely on drivers/powercap ... my bad :<

Regards
Cristian

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-06 15:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-06 14:26 [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Dan Carpenter
2022-07-06 14:27 ` [PATCH 2/2] powercap: arm_scmi: Fix a NULL vs IS_ERR() bug Dan Carpenter
2022-07-06 15:20   ` Cristian Marussi
2022-07-06 15:32     ` Dan Carpenter
2022-07-06 15:46       ` Cristian Marussi
2022-07-06 14:52 ` [PATCH 1/2] powercap: arm_scmi: Fix signedness bug in probe Cristian Marussi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox