ALSA: ASoC: Fix cs4270 error path
authorJean Delvare <khali@linux-fr.org>
Tue, 30 Sep 2008 09:40:37 +0000 (11:40 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 30 Sep 2008 10:47:12 +0000 (12:47 +0200)
commite3145dfb7b4262fa55907006b75da799de8c1be3
tree5260088839385b751953cb0ad47cef9633f9ad23
parent9778e9a0eafe796c2affcd1fa1fa8a3765e026e6
ALSA: ASoC: Fix cs4270 error path

The error path in cs4270_probe/cs4270_remove is pretty broken:
* If cs4270_probe fails, codec is leaked.
* If snd_soc_register_card fails, cs4270_i2c_driver stays registered.
* If I2C support is enabled but no I2C device is found, i2c_del_driver
  is never called (neither in cs4270_probe nor in cs4270_remove.

Fix all 3 problems by implementing a clean error path in cs4270_probe
and jumping to its labels as needed.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/soc/codecs/cs4270.c