diff mbox

ASoC: Intel: Fix the driver data not set issue

Message ID 1415083524-22756-1-git-send-email-yang.jie@intel.com (mailing list archive)
State Accepted
Commit e648f6add20d1cfb5945e24b5bffe5843476645b
Headers show

Commit Message

Jie, Yang Nov. 4, 2014, 6:45 a.m. UTC
The priv_data is allocated again here wrongly, and it
is not set to the driver data after assignment. This
make the pdata->dev is NULL and oops occurs on the first
call to hsw_volume_put.

The resource has been allocated in driver probe callback
hsw_pcm_dev_probe, so here just remove this sencond
allocation is OK.

Signed-off-by: Jie Yang <yang.jie@intel.com>
---
 sound/soc/intel/sst-haswell-pcm.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Mark Brown Nov. 4, 2014, 11:44 a.m. UTC | #1
On Tue, Nov 04, 2014 at 02:45:24PM +0800, Jie Yang wrote:
> The priv_data is allocated again here wrongly, and it
> is not set to the driver data after assignment. This
> make the pdata->dev is NULL and oops occurs on the first
> call to hsw_volume_put.

Applied, thanks.
Liam Girdwood Nov. 4, 2014, 3:48 p.m. UTC | #2
On Tue, 2014-11-04 at 14:45 +0800, Jie Yang wrote:
> The priv_data is allocated again here wrongly, and it
> is not set to the driver data after assignment. This
> make the pdata->dev is NULL and oops occurs on the first
> call to hsw_volume_put.
> 
> The resource has been allocated in driver probe callback
> hsw_pcm_dev_probe, so here just remove this sencond
> allocation is OK.
> 
> Signed-off-by: Jie Yang <yang.jie@intel.com>
> ---
>  sound/soc/intel/sst-haswell-pcm.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/sound/soc/intel/sst-haswell-pcm.c b/sound/soc/intel/sst-haswell-pcm.c
> index 21f1316..bc02a6e 100644
> --- a/sound/soc/intel/sst-haswell-pcm.c
> +++ b/sound/soc/intel/sst-haswell-pcm.c
> @@ -866,7 +866,6 @@ static int hsw_pcm_probe(struct snd_soc_platform *platform)
>  	dev = platform->dev;
>  	dma_dev = pdata->dma_dev;
>  
> -	priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);
>  	priv_data->hsw = pdata->dsp;
>  	priv_data->dev = platform->dev;
>  	priv_data->pm_state = HSW_PM_STATE_D0;

Keyon, I've just updated git and it looks like this patch is probably
missing some parts :-

  CC [M]  sound/soc/intel/haswell.o
sound/soc/intel/sst-haswell-pcm.c: In function ‘hsw_pcm_probe’:
sound/soc/intel/sst-haswell-pcm.c:870:17: warning: ‘priv_data’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  priv_data->hsw = pdata->dsp;
                 ^

Can you fix this and re-test.

Thanks

Liam
Liam Girdwood Nov. 5, 2014, 7:41 a.m. UTC | #3
On Tue, 2014-11-04 at 15:48 +0000, Liam Girdwood wrote:
> On Tue, 2014-11-04 at 14:45 +0800, Jie Yang wrote:
> > The priv_data is allocated again here wrongly, and it
> > is not set to the driver data after assignment. This
> > make the pdata->dev is NULL and oops occurs on the first
> > call to hsw_volume_put.
> > 
> > The resource has been allocated in driver probe callback
> > hsw_pcm_dev_probe, so here just remove this sencond
> > allocation is OK.
> > 
> > Signed-off-by: Jie Yang <yang.jie@intel.com>
> > ---
> >  sound/soc/intel/sst-haswell-pcm.c | 1 -
> >  1 file changed, 1 deletion(-)
> > 
> > diff --git a/sound/soc/intel/sst-haswell-pcm.c b/sound/soc/intel/sst-haswell-pcm.c
> > index 21f1316..bc02a6e 100644
> > --- a/sound/soc/intel/sst-haswell-pcm.c
> > +++ b/sound/soc/intel/sst-haswell-pcm.c
> > @@ -866,7 +866,6 @@ static int hsw_pcm_probe(struct snd_soc_platform *platform)
> >  	dev = platform->dev;
> >  	dma_dev = pdata->dma_dev;
> >  
> > -	priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);
> >  	priv_data->hsw = pdata->dsp;
> >  	priv_data->dev = platform->dev;
> >  	priv_data->pm_state = HSW_PM_STATE_D0;
> 
> Keyon, I've just updated git and it looks like this patch is probably
> missing some parts :-
> 
>   CC [M]  sound/soc/intel/haswell.o
> sound/soc/intel/sst-haswell-pcm.c: In function ‘hsw_pcm_probe’:
> sound/soc/intel/sst-haswell-pcm.c:870:17: warning: ‘priv_data’ may be used uninitialized in this function [-Wmaybe-uninitialized]
>   priv_data->hsw = pdata->dsp;
>                  ^
> 
> Can you fix this and re-test.
> 

It's actually a subsequent non upstream patch on top of this one that is
causing the warning. So nothing to be done except fixing the non
upstream patch.

Liam
diff mbox

Patch

diff --git a/sound/soc/intel/sst-haswell-pcm.c b/sound/soc/intel/sst-haswell-pcm.c
index 21f1316..bc02a6e 100644
--- a/sound/soc/intel/sst-haswell-pcm.c
+++ b/sound/soc/intel/sst-haswell-pcm.c
@@ -866,7 +866,6 @@  static int hsw_pcm_probe(struct snd_soc_platform *platform)
 	dev = platform->dev;
 	dma_dev = pdata->dma_dev;
 
-	priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);
 	priv_data->hsw = pdata->dsp;
 	priv_data->dev = platform->dev;
 	priv_data->pm_state = HSW_PM_STATE_D0;