diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 62aa320c207087b155e31512be048a9fdf3622a9..77e68c4868be8fff04761224e4795eacd8858fa0 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -3844,10 +3844,23 @@ EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_link_codecs); static int __init snd_soc_init(void) { + int ret; + snd_soc_debugfs_init(); - snd_soc_util_init(); + ret = snd_soc_util_init(); + if (ret) + goto err_util_init; - return platform_driver_register(&soc_driver); + ret = platform_driver_register(&soc_driver); + if (ret) + goto err_register; + return 0; + +err_register: + snd_soc_util_exit(); +err_util_init: + snd_soc_debugfs_exit(); + return ret; } module_init(snd_soc_init); diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c index e0c93496c0cda699cef17f07386ae479b758fc03..ba7e5ee30f66c12030e01c0dd38df9744ac79640 100644 --- a/sound/soc/soc-utils.c +++ b/sound/soc/soc-utils.c @@ -373,7 +373,7 @@ int __init snd_soc_util_init(void) return ret; } -void __exit snd_soc_util_exit(void) +void snd_soc_util_exit(void) { platform_driver_unregister(&soc_dummy_driver); platform_device_unregister(soc_dummy_dev);