Re: [PATCH 31/31] ASoC: SOF: Use auto-cleanup for firmware loading

Takashi Iwai <[email protected]>
Newsgroups gmane.linux.sound
Message-ID <[email protected]>
On Thu, 06 Aug 2026 13:56:30 +0200,
Péter Ujfalusi wrote:
> 
> 
> 
> On 05/08/2026 16:52, Takashi Iwai wrote:
> > Simplify the code to manage the firmware loading with __free(firmware)
> > and __free(kfree) auto-cleanups for the firmware data and the temporary
> > string or array.
> > 
> > Only the code refactoring, no functional changes.
> > 
> > Cc: Liam Girdwood <[email protected]>
> > Cc: Peter Ujfalusi <[email protected]>
> > Cc: Bard Liao <[email protected]>
> > Cc: Daniel Baluta <[email protected]>
> > Cc: Pierre-Louis Bossart <[email protected]>
> > Cc: Vijendar Mukunda <[email protected]>
> > Signed-off-by: Takashi Iwai <[email protected]>
> > ---
> >  sound/soc/sof/fw-file-profile.c | 19 +++++++------------
> >  sound/soc/sof/topology.c        | 20 ++++++--------------
> >  2 files changed, 13 insertions(+), 26 deletions(-)
> > 
> > diff --git a/sound/soc/sof/fw-file-profile.c b/sound/soc/sof/fw-file-profile.c
> > index 76bde2e0be1d..fcd57f04ca36 100644
> > --- a/sound/soc/sof/fw-file-profile.c
> > +++ b/sound/soc/sof/fw-file-profile.c
> > @@ -16,20 +16,19 @@ static int sof_test_firmware_file(struct device *dev,
> >  				  enum sof_ipc_type *ipc_type_to_adjust)
> >  {
> >  	enum sof_ipc_type fw_ipc_type;
> > -	const struct firmware *fw;
> > -	const char *fw_filename;
> >  	const u32 *magic;
> >  	int ret;
> >  
> > -	fw_filename = kasprintf(GFP_KERNEL, "%s/%s", profile->fw_path,
> > -				profile->fw_name);
> > +	const char *fw_filename __free(kfree) =
> > +		kasprintf(GFP_KERNEL, "%s/%s", profile->fw_path,
> > +			  profile->fw_name);
> >  	if (!fw_filename)
> >  		return -ENOMEM;
> >  
> > +	const struct firmware *fw __free(firmware) = NULL;
> 
> can we keep this at the head of the function?

We can, but for the auto-cleaned stuff, it's rather recommended to put
the declaration at the position that actually starts using it.  Then
you can avoid the unnecessary handling of the auto-cleanup.

(I don't find whether it's mentioned, though; the documentation about
the auto-cleanup isn't well organized yet, unfortunately...)


thanks,

Takashi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.