Re: [PATCH 06/14] ALSA: hda: cs35l56: Use auto-cleanup for firmware loading

Charles Keepax <[email protected]>
Newsgroups org.kernel.vger.linux-sound
Message-ID <[email protected]>
On Thu, Jul 30, 2026 at 11:45:49AM +0200, Takashi Iwai wrote:
> On Thu, 30 Jul 2026 11:35:56 +0200,
> Charles Keepax wrote:
> > 
> > On Wed, Jul 29, 2026 at 10:37:24AM +0200, Takashi Iwai wrote:
> > > Simplify the code to manage the firmware loading with auto-cleanup.
> > > By the use of __free(firmware), we can replace the manual mutex locks
> > > with guard() gracefully, too.
> > > 
> > > Only the code refactoring, no functional changes.
> > > 
> > > Cc: [email protected]
> > > Signed-off-by: Takashi Iwai <[email protected]>
> > > ---
> > >  sound/hda/codecs/side-codecs/cs35l56_hda.c | 35 ++++++----------------
> > >  1 file changed, 9 insertions(+), 26 deletions(-)
> > > 
> > > diff --git a/sound/hda/codecs/side-codecs/cs35l56_hda.c b/sound/hda/codecs/side-codecs/cs35l56_hda.c
> > > index 78c2cf387a00..bc207ab5b020 100644
> > > --- a/sound/hda/codecs/side-codecs/cs35l56_hda.c
> > > +++ b/sound/hda/codecs/side-codecs/cs35l56_hda.c
> > > @@ -527,18 +527,6 @@ static void cs35l56_hda_request_firmware_files(struct cs35l56_hda *cs35l56,
> > >  						  base_name, NULL, NULL, "bin");
> > >  }
> > >  
> > > -static void cs35l56_hda_release_firmware_files(const struct firmware *wmfw_firmware,
> > > -					       char *wmfw_filename,
> > > -					       const struct firmware *coeff_firmware,
> > > -					       char *coeff_filename)
> > > -{
> > > -	release_firmware(wmfw_firmware);
> > > -	kfree(wmfw_filename);
> > > -
> > > -	release_firmware(coeff_firmware);
> > > -	kfree(coeff_filename);
> > > -}
> > > -
> > >  static int cs35l56_hda_apply_calibration(struct cs35l56_hda *cs35l56)
> > >  {
> > >  	int ret;
> > > @@ -561,10 +549,10 @@ static int cs35l56_hda_apply_calibration(struct cs35l56_hda *cs35l56)
> > >  
> > >  static void cs35l56_hda_fw_load(struct cs35l56_hda *cs35l56)
> > >  {
> > > -	const struct firmware *coeff_firmware = NULL;
> > > -	const struct firmware *wmfw_firmware = NULL;
> > > -	char *coeff_filename = NULL;
> > > -	char *wmfw_filename = NULL;
> > > +	const struct firmware *coeff_firmware __free(firmware) = NULL;
> > > +	const struct firmware *wmfw_firmware __free(firmware) = NULL;
> > 
> > Is it definitely safe to replace release_firmware with kfree? In
> > most cases that is all release_firmware does, but it looks like
> > it does different stuff if someone built the firmware into the
> > kernel?
> 
> It's __free(firmware), not __free(kfree) :)

Oops... sorry my bad, must be too early in the morning for me :-)

Thanks,
Charles
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.