linux/sound/hda/common
Takashi Iwai eb90ae3cca ALSA: hda/intel: Move firmware loading into the probe work
The hda-intel driver uses request_firmware_nowait() for loading its
patch, and tries to continue the probe directly from the fw loader
callback.  This works in principle, but it has a few drawbacks:

- The driver may be released before the firmware callback completes
- Having two ways of async probe makes the code flow unnecessarily
  complex

The former issue is more severe, as it may potentially lead to a UAF,
and there is no explicit way to cancel the pending firmware worker
for now.

This patch changes the firmware loading to be performed rather in the
common probe work without *_nowait().  Then the pending work can be
easily canceled, and the code becomes more straightforward.

A nice bonus is that, by moving into the probe work, the firmware
doesn't need any longer to be cached, hence we can get rid of struct
azx.fw field, and release the firmware immediately after parsing it,
too.

Fixes: 5cb543dba9 ("ALSA: hda - Deferred probing with request_firmware_nowait()")
Link: https://patch.msgid.link/20260415135526.1813126-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-04-16 10:33:06 +02:00
..
auto_parser.c
beep.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
bind.c ALSA: hda: Drop superfluous driver->ops NULL checks 2025-07-11 09:55:38 +02:00
codec.c ALSA: hda: Add a simple GPIO setup helper function 2026-04-09 12:05:54 +02:00
controller_trace.h
controller.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
hda_auto_parser.h
hda_beep.h
hda_controller.h ALSA: hda/intel: Move firmware loading into the probe work 2026-04-16 10:33:06 +02:00
hda_jack.h ALSA: hda - fix function names & missing function parameter 2026-01-07 09:05:50 +01:00
hda_local.h ALSA: hda: Notify IEC958 Default PCM switch state changes 2026-04-03 10:10:38 +02:00
hwdep.c
jack.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig
Makefile
proc.c ALSA: hda/proc: show GPI and GPO state in codec proc output 2026-03-28 14:18:37 +01:00
sysfs.c ALSA: hda: Relax __free() variable declarations 2025-12-17 10:08:30 +01:00