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;
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
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;
>
>
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