From: Markus Elfring Date: Wed, 10 Jun 2026 16:57:17 +0000 (+0200) Subject: ALSA: 6fire: Use common error handling code in usb6fire_control_init() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03a10859061b7f6939babd3e9b5d5a891a93c836;p=thirdparty%2Fkernel%2Flinux.git 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 Link: https://patch.msgid.link/a24a6bd9-a8e1-423c-9eae-b9ab08a8de81@web.de Signed-off-by: Takashi Iwai --- diff --git a/sound/usb/6fire/control.c b/sound/usb/6fire/control.c index c77a21a9acd79..10104cb421659 100644 --- a/sound/usb/6fire/control.c +++ b/sound/usb/6fire/control.c @@ -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)