Skip to content

Commit

Permalink
ASoC: Intel: Fix check for pdata usage before dereference.
Browse files Browse the repository at this point in the history
This patch fixes the following dereference check ordering.

 sound/soc/intel/sst-haswell-pcm.c:749 hsw_pcm_probe() warn: variable dereferenced before check 'pdata' (see line 746)

 git remote add asoc git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
 git remote update asoc
 git checkout 0b708c8
 vim +/pdata +749 sound/soc/intel/sst-haswell-pcm.c

 a4b1299 Mark Brown    2014-03-12  740  };
 a4b1299 Mark Brown    2014-03-12  741
 a4b1299 Mark Brown    2014-03-12  742  static int hsw_pcm_probe(struct snd_soc_platform *platform)
 a4b1299 Mark Brown    2014-03-12  743  {
 a4b1299 Mark Brown    2014-03-12  744  	struct sst_pdata *pdata = dev_get_platdata(platform->dev);
 a4b1299 Mark Brown    2014-03-12  745  	struct hsw_priv_data *priv_data;
 0b708c8 Liam Girdwood 2014-05-02 @746  	struct device *dma_dev = pdata->dma_dev;
 0b708c8 Liam Girdwood 2014-05-02  747  	int i, ret = 0;
 a4b1299 Mark Brown    2014-03-12  748
 a4b1299 Mark Brown    2014-03-12 @749  	if (!pdata)
 a4b1299 Mark Brown    2014-03-12  750  		return -ENODEV;
 a4b1299 Mark Brown    2014-03-12  751
 a4b1299 Mark Brown    2014-03-12  752  	priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
  • Loading branch information
Liam Girdwood authored and Mark Brown committed May 5, 2014
1 parent 51b4e24 commit e9024f0
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion sound/soc/intel/sst-haswell-pcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -772,12 +772,14 @@ static int hsw_pcm_probe(struct snd_soc_platform *platform)
{
struct sst_pdata *pdata = dev_get_platdata(platform->dev);
struct hsw_priv_data *priv_data;
struct device *dma_dev = pdata->dma_dev;
struct device *dma_dev;
int i, ret = 0;

if (!pdata)
return -ENODEV;

dma_dev = pdata->dma_dev;

priv_data = devm_kzalloc(platform->dev, sizeof(*priv_data), GFP_KERNEL);
priv_data->hsw = pdata->dsp;
snd_soc_platform_set_drvdata(platform, priv_data);
Expand Down

0 comments on commit e9024f0

Please sign in to comment.