]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: hda: Return the codec init error properly at snd_hda_codec_build_controls()
authorTakashi Iwai <tiwai@suse.de>
Wed, 9 Jul 2025 16:04:30 +0000 (18:04 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 11 Jul 2025 07:55:38 +0000 (09:55 +0200)
The error from snd_hda_codec_init() was ignored in
snd_hda_codec_build_controls(), which should have been taken account
and abort the flow.  Fix it now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250709160434.1859-28-tiwai@suse.de
sound/hda/common/codec.c

index fa07a296abe89598f2f43f63eaa5e0d25991203d..8e47769ef0cee9c74c3dd3021193ec87fc9e5c82 100644 (file)
@@ -3065,14 +3065,16 @@ EXPORT_SYMBOL_GPL(snd_pcm_2_1_chmaps);
 int snd_hda_codec_build_controls(struct hda_codec *codec)
 {
        struct hda_codec_driver *driver = hda_codec_to_driver(codec);
-       int err = 0;
+       int err;
 
        hda_exec_init_verbs(codec);
        /* continue to initialize... */
        err = snd_hda_codec_init(codec);
-       if (!err) {
-               if (driver->ops->build_controls)
-                       err = driver->ops->build_controls(codec);
+       if (err < 0)
+               return err;
+
+       if (driver->ops->build_controls) {
+               err = driver->ops->build_controls(codec);
                if (err < 0)
                        return err;
        }