2016-04-13 06:45:34

by Dan Carpenter

[permalink] [raw]
Subject: [patch] ARM: qcom: silence an uninitialized variable warning

It's harmless but, if "enable" isn't set, then we pass uninitialized
values to qcom_coincell_chgr_config(). The values aren't used, but
let's silence the warning anyway.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/drivers/misc/qcom-coincell.c b/drivers/misc/qcom-coincell.c
index 7b4a2da..829a61d 100644
--- a/drivers/misc/qcom-coincell.c
+++ b/drivers/misc/qcom-coincell.c
@@ -94,7 +94,8 @@ static int qcom_coincell_probe(struct platform_device *pdev)
{
struct device_node *node = pdev->dev.of_node;
struct qcom_coincell chgr;
- u32 rset, vset;
+ u32 rset = 0;
+ u32 vset = 0;
bool enable;
int rc;



2016-04-14 00:45:36

by Tim Bird

[permalink] [raw]
Subject: Re: [patch] ARM: qcom: silence an uninitialized variable warning



On 04/12/2016 11:45 PM, Dan Carpenter wrote:
> It's harmless but, if "enable" isn't set, then we pass uninitialized
> values to qcom_coincell_chgr_config(). The values aren't used, but
> let's silence the warning anyway.
>
> Signed-off-by: Dan Carpenter <[email protected]>
>
> diff --git a/drivers/misc/qcom-coincell.c b/drivers/misc/qcom-coincell.c
> index 7b4a2da..829a61d 100644
> --- a/drivers/misc/qcom-coincell.c
> +++ b/drivers/misc/qcom-coincell.c
> @@ -94,7 +94,8 @@ static int qcom_coincell_probe(struct platform_device *pdev)
> {
> struct device_node *node = pdev->dev.of_node;
> struct qcom_coincell chgr;
> - u32 rset, vset;
> + u32 rset = 0;
> + u32 vset = 0;
> bool enable;
> int rc;
>
>
Looks OK to me. Thanks for the warning cleanup!

Acked-by: Tim Bird
-- Tim

2016-04-14 01:53:27

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [patch] ARM: qcom: silence an uninitialized variable warning

On Wednesday 13 April 2016, Dan Carpenter wrote:
> It's harmless but, if "enable" isn't set, then we pass uninitialized
> values to qcom_coincell_chgr_config(). The values aren't used, but
> let's silence the warning anyway.
>
> Signed-off-by: Dan Carpenter <[email protected]>

I haven't seen this warning in my tests, which means it probably doesn't show up
in the usual configurations. Are you sure this doesn't just happen with
CONFIG_PROFILE_ALL_BRANCHES, CONFIG_CC_OPTIMIZE_FOR_SIZE or CONFIG_GCOV_PROFILE_ALL,
or with versions of gcc before 4.9?

Arnd

> diff --git a/drivers/misc/qcom-coincell.c b/drivers/misc/qcom-coincell.c
> index 7b4a2da..829a61d 100644
> --- a/drivers/misc/qcom-coincell.c
> +++ b/drivers/misc/qcom-coincell.c
> @@ -94,7 +94,8 @@ static int qcom_coincell_probe(struct platform_device *pdev)
> {
> struct device_node *node = pdev->dev.of_node;
> struct qcom_coincell chgr;
> - u32 rset, vset;
> + u32 rset = 0;
> + u32 vset = 0;
> bool enable;
> int rc;
>
>

2016-04-14 09:03:26

by Dan Carpenter

[permalink] [raw]
Subject: Re: [patch] ARM: qcom: silence an uninitialized variable warning

On Thu, Apr 14, 2016 at 03:53:03AM +0200, Arnd Bergmann wrote:
> On Wednesday 13 April 2016, Dan Carpenter wrote:
> > It's harmless but, if "enable" isn't set, then we pass uninitialized
> > values to qcom_coincell_chgr_config(). The values aren't used, but
> > let's silence the warning anyway.
> >
> > Signed-off-by: Dan Carpenter <[email protected]>
>
> I haven't seen this warning in my tests, which means it probably doesn't show up
> in the usual configurations. Are you sure this doesn't just happen with
> CONFIG_PROFILE_ALL_BRANCHES, CONFIG_CC_OPTIMIZE_FOR_SIZE or CONFIG_GCOV_PROFILE_ALL,
> or with versions of gcc before 4.9?
>

This is a smatch stuff I'm working on. Realistically, I have to make
Smatch warn when we pass uninitialized values to a function. I can't
make smatch do the extra analysis to test if the values are used or not.

regards,
dan carpenter