linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] iio: adc: Call uninitialized_var for raw_sample
@ 2015-03-19 13:34 Darshana Padmadas
  2015-03-19 14:05 ` [Outreachy kernel] " Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Darshana Padmadas @ 2015-03-19 13:34 UTC (permalink / raw)
  To: outreachy-kernel; +Cc: jic23, linux-kernel, gregkh, Darshana Padmadas

This patch calls uninitialized_var function for uninitialized
variable raw_sample. This error was reported by the static
analysis tool, cppcheck.

Signed-off-by: Darshana Padmadas <darshanapadmadas@gmail.com>
---
 drivers/iio/adc/ad_sigma_delta.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
index d10bd0c..f0bbf3c 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -248,7 +248,8 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, int *val)
 {
 	struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
-	unsigned int sample, raw_sample;
+	unsigned int sample;
+	unsigned int uninitialized_var(raw_sample);
 	int ret = 0;
 
 	if (iio_buffer_enabled(indio_dev))
-- 
1.9.1


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

* Re: [Outreachy kernel] [PATCH] iio: adc: Call uninitialized_var for raw_sample
  2015-03-19 13:34 [PATCH] iio: adc: Call uninitialized_var for raw_sample Darshana Padmadas
@ 2015-03-19 14:05 ` Greg KH
  2015-03-21 11:49   ` Jonathan Cameron
  0 siblings, 1 reply; 3+ messages in thread
From: Greg KH @ 2015-03-19 14:05 UTC (permalink / raw)
  To: Darshana Padmadas; +Cc: outreachy-kernel, jic23, linux-kernel

On Thu, Mar 19, 2015 at 07:04:21PM +0530, Darshana Padmadas wrote:
> This patch calls uninitialized_var function for uninitialized
> variable raw_sample. This error was reported by the static
> analysis tool, cppcheck.
> 
> Signed-off-by: Darshana Padmadas <darshanapadmadas@gmail.com>
> ---
>  drivers/iio/adc/ad_sigma_delta.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
> index d10bd0c..f0bbf3c 100644
> --- a/drivers/iio/adc/ad_sigma_delta.c
> +++ b/drivers/iio/adc/ad_sigma_delta.c
> @@ -248,7 +248,8 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
>  	const struct iio_chan_spec *chan, int *val)
>  {
>  	struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
> -	unsigned int sample, raw_sample;
> +	unsigned int sample;
> +	unsigned int uninitialized_var(raw_sample);

I don't understand, what exactly is this "fixing"?

And note, cppcheck is known to give you lots of false warnings / errors,
be very careful when using it.  Some kernel developers refuse to take
patches that mention it given that it has been wrong so many times in
the past.

thanks,

greg k-h

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

* Re: [Outreachy kernel] [PATCH] iio: adc: Call uninitialized_var for raw_sample
  2015-03-19 14:05 ` [Outreachy kernel] " Greg KH
@ 2015-03-21 11:49   ` Jonathan Cameron
  0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2015-03-21 11:49 UTC (permalink / raw)
  To: Greg KH, Darshana Padmadas; +Cc: outreachy-kernel, linux-kernel

On 19/03/15 14:05, Greg KH wrote:
> On Thu, Mar 19, 2015 at 07:04:21PM +0530, Darshana Padmadas wrote:
>> This patch calls uninitialized_var function for uninitialized
>> variable raw_sample. This error was reported by the static
>> analysis tool, cppcheck.
>>
>> Signed-off-by: Darshana Padmadas <darshanapadmadas@gmail.com>
>> ---
>>  drivers/iio/adc/ad_sigma_delta.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
>> index d10bd0c..f0bbf3c 100644
>> --- a/drivers/iio/adc/ad_sigma_delta.c
>> +++ b/drivers/iio/adc/ad_sigma_delta.c
>> @@ -248,7 +248,8 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
>>  	const struct iio_chan_spec *chan, int *val)
>>  {
>>  	struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
>> -	unsigned int sample, raw_sample;
>> +	unsigned int sample;
>> +	unsigned int uninitialized_var(raw_sample);
> 
> I don't understand, what exactly is this "fixing"?
> 
> And note, cppcheck is known to give you lots of false warnings / errors,
> be very careful when using it.  Some kernel developers refuse to take
> patches that mention it given that it has been wrong so many times in
> the past.
> 
> thanks,
> 
> greg k-h
> 
To clarify, the only way that variable can be used uninitialized is if
we get an error from the spi transfer.  If that happens we have an error
code returned and hence don't use it anyway.

I suspect ccpcheck is either getting lost chasing through where that variable
is used, or is falling for the fact that the value of ret is not checked for
quite a few lines (so as to do some common cleanup which doesn't care if that
function succeeded or not).

Anyhow, Greg is of course correct. False positive as far as I can see.

Jonathan

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

end of thread, other threads:[~2015-03-21 11:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-19 13:34 [PATCH] iio: adc: Call uninitialized_var for raw_sample Darshana Padmadas
2015-03-19 14:05 ` [Outreachy kernel] " Greg KH
2015-03-21 11:49   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).