ALSA: 6fire: Use common error handling code in usb6fire_control_init()

Use an additional label so that a bit of exception handling can be better
reused at the end of this function implementation.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Link: https://patch.msgid.link/a24a6bd9-a8e1-423c-9eae-b9ab08a8de81@web.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Markus Elfring
2026-06-10 18:57:17 +02:00
committed by Takashi Iwai
parent 7bc02ab446
commit 03a1085906

View File

@@ -582,30 +582,31 @@ int usb6fire_control_init(struct sfire_chip *chip)
"Master Playback Volume", vol_elements);
if (ret) {
dev_err(&chip->dev->dev, "cannot add control.\n");
kfree(rt);
return ret;
goto free_rt;
}
ret = usb6fire_control_add_virtual(rt, chip->card,
"Master Playback Switch", mute_elements);
if (ret) {
dev_err(&chip->dev->dev, "cannot add control.\n");
kfree(rt);
return ret;
goto free_rt;
}
i = 0;
while (elements[i].name) {
ret = snd_ctl_add(chip->card, snd_ctl_new1(&elements[i], rt));
if (ret < 0) {
kfree(rt);
dev_err(&chip->dev->dev, "cannot add control.\n");
return ret;
goto free_rt;
}
i++;
}
chip->control = rt;
return 0;
free_rt:
kfree(rt);
return ret;
}
void usb6fire_control_abort(struct sfire_chip *chip)