| 33d3b6f0 | 19-May-2026 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda/intel: Make sure to cancel irq-pending work at closing PCM stream
The pending irq work might be still floating while the assigned stream has been already closed, which may lead to UAF, esp
ALSA: hda/intel: Make sure to cancel irq-pending work at closing PCM stream
The pending irq work might be still floating while the assigned stream has been already closed, which may lead to UAF, especially when another async work for fasync is involved.
For addressing this, extend the hda_controller_ops for allowing the extra cleanup procedure that is specific to the controller driver, and make sure to cancel and sync the pending irq work at each PCM close before releasing the resources.
Reported-by: Jake Lamberson <lamberson.jake@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260519121157.28477-2-tiwai@suse.de
show more ...
|
| e36a88b3 | 19-May-2026 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda: Move irq pending work into hda-intel stream
Currently, the delayed IRQ handling for PCM streams is managed in a single work embedded in hda_intel, but this is basically a per-stream thing
ALSA: hda: Move irq pending work into hda-intel stream
Currently, the delayed IRQ handling for PCM streams is managed in a single work embedded in hda_intel, but this is basically a per-stream thing. Due to the single work, we can't cancel the work properly at closing each stream, for example.
For making the IRQ pending work to be stream-based, this patch changes the following:
- An extended version of azx_dev (i.e. the hd-audio stream object) is defined for snd-hda-intel - The irq_pending flag and irq_pending_work are moved to hda_intel_stream, so that they can be hda-intel stream specific - The stream creation and assignment are refactored so that snd-hda-intel can handle individually; the snd-hda-intel specific workaround for stream tags is also moved to snd-hda-intel itself instead of the common code - The irq pending work is canceled properly at free / shutdown
While we're at it, changed the bit field flag to bool, as the bit field doesn't help much in our case.
Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260519121157.28477-1-tiwai@suse.de
show more ...
|
| 0aacce7c | 15-May-2026 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda: Avoid quirk matching with zero PCI SSID
Heiko reported that BIOS on some recent machines doesn't set up PCI SSID properly but leave with zero (e.g. on HP Dragonfly Folio 13.5 inch G3 with
ALSA: hda: Avoid quirk matching with zero PCI SSID
Heiko reported that BIOS on some recent machines doesn't set up PCI SSID properly but leave with zero (e.g. on HP Dragonfly Folio 13.5 inch G3 with SSID 103c:8a05/8a06), which confuses the quirk table matching and results in the non-functional state.
Fix it by skipping the PCI SSID matching when either vendor or device ID is zero and falling back to the codec SSID that is supposed to be more stable for those cases.
Reported-by: Heiko Schmid <heiko@future-machines.org> Tested-by: Heiko Schmid <heiko@future-machines.org> Closes: https://lore.kernel.org/20260514133110.12302-1-heiko@future-machines.org Link: https://patch.msgid.link/20260515105700.276420-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
show more ...
|
| cd8fd5a0 | 09-Apr-2026 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda: Add a simple GPIO setup helper function
Introduce a common GPIO setup helper function, so that we can clean up the open code found in many codec drivers later.
Signed-off-by: Takashi Iwa
ALSA: hda: Add a simple GPIO setup helper function
Introduce a common GPIO setup helper function, so that we can clean up the open code found in many codec drivers later.
Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260409093826.1317626-3-tiwai@suse.de
show more ...
|
| 3cafe163 | 27-Aug-2025 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda/common: Use guard() for spinlocks
Replace the manual spin lock/unlock pairs with guard() for code simplification.
Only code refactoring, and no behavior change.
Signed-off-by: Takashi Iw
ALSA: hda/common: Use guard() for spinlocks
Replace the manual spin lock/unlock pairs with guard() for code simplification.
Only code refactoring, and no behavior change.
Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250827072916.31933-25-tiwai@suse.de
show more ...
|
| 62dd3851 | 27-Aug-2025 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda/common: Use guard() for mutex locks
Replace the manual mutex lock/unlock pairs with guard().
Only code refactoring, and no behavior change.
Signed-off-by: Takashi Iwai <tiwai@suse.de> Li
ALSA: hda/common: Use guard() for mutex locks
Replace the manual mutex lock/unlock pairs with guard().
Only code refactoring, and no behavior change.
Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250827072916.31933-8-tiwai@suse.de
show more ...
|
| a23160c8 | 27-Aug-2025 |
Takashi Iwai <tiwai@suse.de> |
ALSA: hda: Use auto cleanup macros for DSP loader locks
There are temporary DSP locking/unlocking patterns found in various places, and those can be cleaned up nicely with the guard() macro calling
ALSA: hda: Use auto cleanup macros for DSP loader locks
There are temporary DSP locking/unlocking patterns found in various places, and those can be cleaned up nicely with the guard() macro calling snd_hdac_dsp_lock() and *_unlock().
Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250827072916.31933-7-tiwai@suse.de
show more ...
|