lkml.org 
[lkml]   [2009]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
SubjectRe:[PATCH 01/06] Fix compilation warning for sound/soc/codecs/wm8400.c
Hey,

>On Wed, 2009-07-15 at 10:13 +0530, Jaswinder Singh Rajput wrote:
>Hello Subrata,
>
> On Wed, 2009-07-15 at 07:48 +0530, Subrata Modak wrote:
> > Following fix is inspired by David Howells fix few days back:
> > http://lkml.org/lkml/2009/7/9/109,
> >
>
> Please check further of this thread :
>
> http://marc.info/?l=linux-kernel&m=124756210124518&w=2

Does the above really apply here ?

>
>
> > Signed-off-by: Subrata Modak<subrata@linux.vnet.ibm.com>,
> > ---
> >
> > --- a/sound/soc/codecs/wm8400.c 2009-06-15 07:52:31.000000000 +0530
> > +++ b/sound/soc/codecs/wm8400.c 2009-07-15 05:35:00.000000000 +0530
> > @@ -1015,7 +1015,7 @@ static int wm8400_set_dai_pll(struct snd
> > {
> > struct snd_soc_codec *codec = codec_dai->codec;
> > struct wm8400_priv *wm8400 = codec->private_data;
> > - struct fll_factors factors;
> > + struct fll_factors uninitialized_var(factors);
> > int ret;
> > u16 reg;
> >
> >
>
> This kind of warnings born due to not handling the variables properly.
> Please try to understand the root cause of this warning, just shutting
> this warning is of no use.
>
> Please revise your patches, If you face any problems let me know.
>

How about the following brutal shutdown ?
---
--- a/sound/soc/codecs/wm8400.c 2009-07-16 16:21:37.000000000 +0530
+++ b/sound/soc/codecs/wm8400.c 2009-07-16 18:28:48.000000000 +0530
@@ -1015,7 +1015,7 @@ static int wm8400_set_dai_pll(struct snd
{
struct snd_soc_codec *codec = codec_dai->codec;
struct wm8400_priv *wm8400 = codec->private_data;
- struct fll_factors factors;
+ struct fll_factors factors = {};
int ret;
u16 reg;

---
As i found that:

1024
1025 if (freq_out != 0) {
1026 ret = fll_factors(wm8400, &factors, freq_in, freq_out);
1027 if (ret != 0)
1028 return ret;
1029 }
1030
'factors' will get initialized here, as, 'freq_out' will probably never have
a '0' value. So, 'fll_factors()' will actually overwrite values in 'factors'
even after the initial brutal assignment:
"struct fll_factors factors = {}"
Regards--
Subrata



\
 
 \ /
  Last update: 2009-07-16 15:13    [W:0.072 / U:0.396 seconds]
©2003-2011 Jasper Spaans