diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index e02c374d2243362f1710b8b109bae0a59965c298..0ce075c47b2518855ec67b66042f3df857b1dfbd 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -4096,6 +4096,10 @@ int snd_soc_register_codec(struct device *dev, return 0; fail_codec_name: + mutex_lock(&client_mutex); + list_del(&codec->list); + mutex_unlock(&client_mutex); + kfree(codec->name); fail_codec: kfree(codec);