Commit 46fdaa3b authored by Dan Carpenter's avatar Dan Carpenter Committed by Mark Brown

ASoC: soc-cache: dereferencing before checking

The patch c358e640 "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: default avatarDan Carpenter <error27@gmail.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent a98a0bc6
...@@ -1609,24 +1609,23 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec) ...@@ -1609,24 +1609,23 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec)
return 0; return 0;
} }
if (!codec->cache_ops || !codec->cache_ops->sync)
return -EINVAL;
if (codec->cache_ops->name) if (codec->cache_ops->name)
name = codec->cache_ops->name; name = codec->cache_ops->name;
else else
name = "unknown"; name = "unknown";
if (codec->cache_ops && codec->cache_ops->sync) { if (codec->cache_ops->name)
if (codec->cache_ops->name) dev_dbg(codec->dev, "Syncing %s cache for %s codec\n",
dev_dbg(codec->dev, "Syncing %s cache for %s codec\n", codec->cache_ops->name, codec->name);
codec->cache_ops->name, codec->name); trace_snd_soc_cache_sync(codec, name, "start");
trace_snd_soc_cache_sync(codec, name, "start"); ret = codec->cache_ops->sync(codec);
ret = codec->cache_ops->sync(codec); if (!ret)
if (!ret) codec->cache_sync = 0;
codec->cache_sync = 0; trace_snd_soc_cache_sync(codec, name, "end");
trace_snd_soc_cache_sync(codec, name, "end"); return ret;
return ret;
}
return -EINVAL;
} }
EXPORT_SYMBOL_GPL(snd_soc_cache_sync); EXPORT_SYMBOL_GPL(snd_soc_cache_sync);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment