]> git.hungrycats.org Git - linux/commitdiff
ASoC: sma1307: Use auto-cleanup for firmware loading
authorTakashi Iwai <tiwai@suse.de>
Thu, 6 Aug 2026 13:59:50 +0000 (15:59 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 10 Aug 2026 14:33:59 +0000 (15:33 +0100)
Simplify the code to manage the firmware loading with __free(firmware)
auto-cleanup.

Only the code refactoring, no functional changes.

Cc: Kiseok Jo <kiseok.jo@irondevice.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260806140006.1412298-19-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/sma1307.c

index c52fe95b30c6ad4f130c51500ce30b31967d519b..adb369a29b9d311295ce16867b55fef8eac85aef 100644 (file)
@@ -1690,7 +1690,7 @@ static void sma1307_check_fault_worker(struct work_struct *work)
 
 static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *file)
 {
-       const struct firmware *fw;
+       const struct firmware *fw __free(firmware) = NULL;
        int size, offset, num_mode;
        int ret;
 
@@ -1703,22 +1703,18 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
                return;
        } else if ((fw->size) < SMA1307_SETTING_HEADER_SIZE) {
                dev_err(sma1307->dev, "%s: Invalid file\n", __func__);
-               release_firmware(fw);
                sma1307->set.status = false;
                return;
        }
 
        int *data __free(kfree) = kzalloc(fw->size, GFP_KERNEL);
        if (!data) {
-               release_firmware(fw);
                sma1307->set.status = false;
                return;
        }
        size = fw->size >> 2;
        memcpy(data, fw->data, fw->size);
 
-       release_firmware(fw);
-
        /* HEADER */
        sma1307->set.header_size = SMA1307_SETTING_HEADER_SIZE;
        sma1307->set.checksum = data[sma1307->set.header_size - 2];