aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-cache.c
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2011-02-07 14:01:41 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-02-08 06:27:45 -0500
commit46fdaa3bec1bcaa36759b1f5e5e27245ae465b8f (patch)
tree2ce1696415cd65f6722a8bd4116ca8c1971f702d /sound/soc/soc-cache.c
parenta98a0bc6c92eacd181417a9c0ccd2e8028066622 (diff)
ASoC: soc-cache: dereferencing before checking
The patch c358e640a66 "ASoC: soc-cache: Add trace event for snd_soc_cache_sync()" introduced a dereference of "codec->cache_ops" before we had checked it for NULL. I pulled the check forward, and then pulled everything in an indent level. Signed-off-by: Dan Carpenter <error27@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-cache.c')
-rw-r--r--sound/soc/soc-cache.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c
index db66dc44add2..5d76da43b14c 100644
--- a/sound/soc/soc-cache.c
+++ b/sound/soc/soc-cache.c
@@ -1609,24 +1609,23 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec)
1609 return 0; 1609 return 0;
1610 } 1610 }
1611 1611
1612 if (!codec->cache_ops || !codec->cache_ops->sync)
1613 return -EINVAL;
1614
1612 if (codec->cache_ops->name) 1615 if (codec->cache_ops->name)
1613 name = codec->cache_ops->name; 1616 name = codec->cache_ops->name;
1614 else 1617 else
1615 name = "unknown"; 1618 name = "unknown";
1616 1619
1617 if (codec->cache_ops && codec->cache_ops->sync) { 1620 if (codec->cache_ops->name)
1618 if (codec->cache_ops->name) 1621 dev_dbg(codec->dev, "Syncing %s cache for %s codec\n",
1619 dev_dbg(codec->dev, "Syncing %s cache for %s codec\n", 1622 codec->cache_ops->name, codec->name);
1620 codec->cache_ops->name, codec->name); 1623 trace_snd_soc_cache_sync(codec, name, "start");
1621 trace_snd_soc_cache_sync(codec, name, "start"); 1624 ret = codec->cache_ops->sync(codec);
1622 ret = codec->cache_ops->sync(codec); 1625 if (!ret)
1623 if (!ret) 1626 codec->cache_sync = 0;
1624 codec->cache_sync = 0; 1627 trace_snd_soc_cache_sync(codec, name, "end");
1625 trace_snd_soc_cache_sync(codec, name, "end"); 1628 return ret;
1626 return ret;
1627 }
1628
1629 return -EINVAL;
1630} 1629}
1631EXPORT_SYMBOL_GPL(snd_soc_cache_sync); 1630EXPORT_SYMBOL_GPL(snd_soc_cache_sync);
1632 1631