From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Cen Zhang <zzzccc427@gmail.com>, Takashi Iwai <tiwai@suse.de>,
Sasha Levin <sashal@kernel.org>,
perex@perex.cz, tiwai@suse.com, linux-sound@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 6.18] ALSA: usb-audio: Release components on probe errors
Date: Mon, 19 Oct 2026 09:53:08 -0400 [thread overview]
Message-ID: <20261019135441.1420968-497-sashal@kernel.org> (raw)
In-Reply-To: <20261019135441.1420968-1-sashal@kernel.org>
From: Cen Zhang <zzzccc427@gmail.com>
[ Upstream commit 3213bf9885e3356fff12ac18b12d4c2fb4687734 ]
usb_audio_probe() can create USB-audio component resources before the
first interface is recorded in chip->num_interfaces. If a later probe
step fails, the error path drops chip->active and frees the card directly
when no interfaces have been registered.
Normal disconnect first releases USB-audio components in a fixed order
before the card is freed. The first-interface probe error path skipped
that sequence, so partially initialized PCM, endpoint, MIDI, media, or
mixer resources could be left for the card private_free path without their
disconnect handling having run.
Move the existing normal-disconnect component release sequence into a
helper and call it from the zero-interface probe error path before
snd_card_free(). Keep the normal disconnect ordering unchanged: PCM
streams, endpoint resources, MIDI 1.0 resources, MIDI 2.0 resources, media
device cleanup, then mixer resources.
Assisted-by: Codex:gpt-5.5
Signed-off-by: Cen Zhang <zzzccc427@gmail.com>
Link: https://patch.msgid.link/20260618170026.192212-1-zzzccc427@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
The first-interface probe error path in this 6.18 tree still skips
disconnect teardown, so live mixer/MIDI URBs can outlive card devices.
That is a real UAF window, not just cleanup.
## Phase 1: Commit message forensics
**Step 1.1:** Record: `[ALSA/usb-audio] [Release] [On first-interface
probe failure, run the normal USB-audio component disconnect sequence
before snd_card_free()]`
**Step 1.2:** Record: tags present:
- `Assisted-by: Codex:gpt-5.5`
- `Signed-off-by: Cen Zhang <zzzccc427@gmail.com>` (author)
- `Link:
https://patch.msgid.link/20260618170026.192212-1-zzzccc427@gmail.com`
- `Signed-off-by: Takashi Iwai <tiwai@suse.de>` (ALSA maintainer applied
it)
- No `Fixes:`, `Reported-by:`, `Tested-by:`, `Cc: stable` (absence
expected for this review)
- Ignore pipeline `Signed-off-by: Sasha Levin` / `[Upstream commit ...]`
**Step 1.3:** Record: `[Bug] first-interface probe can create
PCM/endpoint/MIDI/media/mixer state before chip->num_interfaces is
incremented; a later failure goes to __error_no_register and calls
snd_card_free() when num_interfaces==0. [Symptom] those objects skip the
disconnect sequence used on unplug (URB kill, endpoint release,
MIDI/media/mixer disconnect) and are left to card private_free.
[Versions] none given; code is longstanding. [Root cause] probe error
path is not equivalent to __usb_audio_disconnect().`
**Step 1.4:** Record: `[Not a disguised cleanup.] The message describes
a real teardown skip. Extracting a helper is only so the existing
disconnect sequence can be reused on that error path.`
## Phase 2: Diff analysis
**Step 2.1:** Record: `[sound/usb/card.c, ~+38/-32] [new
usb_audio_disconnect_components(); usb_audio_probe() error path;
__usb_audio_disconnect()] [single-file surgical refactor of existing
teardown + one extra call site]`
**Step 2.2:** Record:
- Hunk 1: identical PCM → endpoint → MIDI 1.0 → MIDI 2.0 → media → mixer
release moved from `__usb_audio_disconnect()` into
`usb_audio_disconnect_components()`.
- Hunk 2: `__error_no_register` with `!chip->num_interfaces` used to
call only `snd_card_free()`; it now calls the helper first.
- Hunk 3: normal disconnect still does shutdown wait +
`snd_card_disconnect()`, then the helper. Ordering of component
release is unchanged.
**Step 2.3:** Record: `[Error-path resource teardown / UAF] Probe
creates live USB resources before claiming an interface.
snd_usb_create_streams() can start MIDI 2.0 input URBs;
snd_usb_create_mixer() submits mixer interrupt URBs. Those stay live
until disconnect. On first-interface failure, snd_card_free() runs
snd_device_free_all() (UMP/rawmidi, mixer, PCM) and only then
card->private_free (snd_usb_audio_free → snd_usb_midi_v2_free_all /
endpoint kfree). Completions can still run against objects already
freed. The helper kills/disconnects them first, matching unplug.`
**Step 2.4:** Record: `[Quality: high]` The helper is the existing,
battle-tested disconnect body. Disconnect callbacks are already
idempotent (`disconnected` flags; `snd_media_stream_delete()` NULL-
guards). `[Regression risk: low]` Probe holds `register_mutex` already;
usage_count should be zero because the card is not registered. Mainline
uses `snd_refcount_sync()`; this 6.18 tree still uses
`wait_event(chip->shutdown_wait, ...)`, and the candidate as applied
here keeps that. No API change.
## Phase 3: Git history
**Step 3.1:** Record: `[Buggy error path] 61a6a108d15213 (Thomas Pfaff,
2011) — if (!chip->num_interfaces) snd_card_free(). [Disconnect
sequence] e5779998bf8b70 (2010) plus later MIDI2/media additions
(ff49d1df79aef 2023, 66354f18fe5fbb 2019). Present for the entire 6.18
lifetime.`
**Step 3.2:** Record: `[No Fixes: tag.] The skip is old, not a recent
regression.`
**Step 3.3:** Record: related commits on this tree:
- `4c16176fc11a6` “Kill MIDI 2.0 URBs before freeing endpoints” (same
author, same day) — already in this tree. Fixes MIDI2 **create-
internal** error (`snd_usb_midi_v2_free()`). It does **not** kill URBs
before `snd_card_free()` when create succeeded and a later probe step
failed.
- `5f8cf71258261` (2018) UAF on this same `num_interfaces==0` path (use-
after-free of chip->active) — shows this error path has been a real
UAF site before.
- `6d3e202670b81` resume cleanup — unrelated.
Standalone besides sharing the MIDI2 theme with 4c16176fc11a6; not patch
N/M.
**Step 3.4:** Record: `[Author] Cen Zhang, recent ALSA usb-audio/seq
contributor; not the maintainer. [Maintainer] Takashi Iwai applied it.
Sibling MIDI2 UAF fix from the same author already went to this stable
tree.`
**Step 3.5:** Record: `[Dependencies] All callees exist at v6.18:
snd_usb_stream_disconnect, snd_usb_endpoint_release,
snd_usbmidi_disconnect, snd_usb_midi_v2_disconnect_all,
snd_media_device_delete, snd_usb_mixer_disconnect. No snd_refcount_sync
requirement in this tree. Can apply standalone.`
## Phase 4: Mailing list / external
**Step 4.1:** Record: `[Lore]
https://patch.msgid.link/20260618170026.192212-1-zzzccc427@gmail.com`
via `b4 dig -c 3213bf9885e3356fff12ac18b12d4c2fb4687734`. `[Revisions]
v1 only. [Review] Takashi Iwai 2026-06-29: “Applied to for-next branch
now. Thanks.” No NAK, no requested changes, no stable nomination in-
thread.`
**Step 4.2:** Record: `[Recipients from b4 dig -w] Cen Zhang, Jaroslav
Kysela, Takashi Iwai, linux-sound, linux-kernel, baijiaju1990@gmail.com.
Subsystem maintainers were on the original To/Cc.`
**Step 4.3:** Record: `[No Reported-by / syzbot / bugzilla on this
commit.] The same-day sibling MIDI2 commit documented KASAN slab-UAF in
input_urb_complete() on a probe error path; that is the same class of
bug, different call site.`
**Step 4.4:** Record: `[Related] MIDI2 URB-kill patch (msgid
20260618170010.191433-1), submitted ~16s earlier, already in this tree.
This patch is still needed for the successful-create-then-later-probe-
fail path.`
**Step 4.5:** Record: `[stable list] Not searched successfully via
WebFetch (lore 403). b4 thread has no stable discussion. UNVERIFIED: no
evidence this was NAK’d for stable.`
## Phase 5: Code semantic analysis
**Step 5.1:** Record: `[usb_audio_disconnect_components (new),
usb_audio_probe, __usb_audio_disconnect]`
**Step 5.2:** Record: `usb_audio_probe` is `usb_audio_driver.probe` —
USB enumeration / hub_event. `__usb_audio_disconnect` is the unplug
path. The new helper is also used from that path. High-frequency driver;
CONFIG_SND_USB_AUDIO is common.
**Step 5.3:** Record: helper calls `snd_usb_stream_disconnect` (NULL
endpoint pointers), `snd_usb_endpoint_release` → `release_urbs()`,
`snd_usbmidi_disconnect` (kill MIDI1 URBs),
`snd_usb_midi_v2_disconnect_all` (set disconnected, kill/drain MIDI2
URBs), `snd_media_device_delete`, `snd_usb_mixer_disconnect`
(`usb_kill_urb` on mixer/rc URBs).
**Step 5.4:** Record: `[Reachable] Plug a USB audio/MIDI device whose
first interface creates streams/mixer/MIDI, then a later probe step
fails (bad descriptor, mixer fail, snd_card_register fail, device
yanked). No extra ioctl required. MIDI2 `start_input_streams()` runs
inside `snd_usb_midi_v2_create()` from `snd_usb_create_stream()` before
mixer/register. Mixer `usb_submit_urb(mixer->urb)` runs in mixer create
before register.`
**Step 5.5:** Record: Same-day MIDI2 free-path UAF fix; historical UAF
on this exact `num_interfaces==0` free path; other USB sound probe-error
URB leaks (caiaq, line6). Pattern is systematic: probe error must stop
URBs before freeing the card.
## Phase 6: Local tree (6.18.y)
**Step 6.1:** Record: `[Local tree] v6.18.53 (`git describe HEAD` =
v6.18.53-5049-g0f0bdc2b0dffb). `[Buggy code at v6.18] sound/usb/card.c
__error_no_register: atomic_dec(&chip->active); if
(!chip->num_interfaces) snd_card_free(chip->card);` with no component
disconnect. MIDI2 create/start-input and mixer URB submit exist at
v6.18.`
**Step 6.2:** Record: `[Backport difficulty: clean / already matching
this tree.] The only mainline delta vs 6.18 is `snd_refcount_sync()` vs
`wait_event(...)` in the disconnect wait, which this tree correctly
keeps. Helper callees and list fields (`pcm_list`, `ep_list`,
`midi_list`, `mixer_list`) are present.`
**Step 6.3:** Record: `[4c16176fc11a6 is already here]` and does not
replace this fix. No other equivalent probe-error disconnect helper.
## Phase 7: Subsystem context
**Step 7.1:** Record: `[sound/usb-audio] [IMPORTANT]` — default USB
sound driver on desktops, laptops, docks, headsets; not staging.
**Step 7.2:** Record: `[Mature driver, still active.] USB MIDI 2.0
(2023) increased the cost of skipping disconnect, because input URBs now
start at create, not at open.`
## Phase 8: Impact and risk
**Step 8.1:** Record: `[driver-specific, but a very widely used driver]`
CONFIG_SND_USB_AUDIO users; worse on MIDI 2.0 devices.
**Step 8.2:** Record: `[Trigger] first-interface usb_audio_probe()
failure after streams/mixer/MIDI construction. [Likelihood] not every
boot, but ordinary for flaky/unplug-during-enum/bad-descriptor devices.
[Unprivileged] plugging USB audio is enough; no extra privilege needed
for the URB/completion race.`
**Step 8.3:** Record: `[Failure] use-after-free / use-during-teardown
from in-flight mixer or MIDI2 URBs while snd_card_free() runs
snd_device_free_all() (UMP/rawmidi private_free, mixer kctl, then chip
private_free). Confirmed mechanism: input_urb_complete() →
snd_ump_receive(ep->ump) while UMP is an snd_device freed before chip
private_free. [Severity: HIGH]` crash or memory corruption on probe
failure; same class as the already-backported MIDI2 KASAN UAF.
**Step 8.4:** Record: `[Benefit: high] closes a real probe-error UAF
window on a common driver. [Risk: low] ~one extra call of existing
disconnect code, idempotent vs later free. [Ratio: favorable]`
## Phase 9: Synthesis
**Step 9.1:**
- FOR: real bug; first-interface probe error skips disconnect; MIDI2
URBs and mixer interrupt URBs are live then; snd_card_free frees ALSA
devices before chip private_free; helper is existing disconnect code;
small; maintainer applied v1; helpers exist in 6.18; sibling MIDI2 fix
does not cover this ordering.
- AGAINST: no Fixes/Reported-by/syzbot on this exact commit; AI-
assisted; some objects also self-disconnect in their destructors
(mixer_free, snd_usbmidi_free), so not every component crashes every
time.
- UNRESOLVED: lore.kernel.org HTTP 403 via WebFetch; no independent
stable-list thread found.
**Step 9.2:** Stable rules:
1. Obviously correct and tested? **PASS** — move-existing-sequence +
maintainer applied.
2. Real user-visible bug? **PASS** — probe-error UAF/teardown skip on
USB audio.
3. Important (crash/UAF)? **PASS** — HIGH; in-flight URB vs card free.
4. Small/contained? **PASS** — one file, ~70-line net-neutral extract +
2-line call.
5. No new features/APIs? **PASS**
6. Applies to this tree? **PASS** — bug and callees present at v6.18;
wait_event form already matches.
**Step 9.3:** Record: `[Not an exception category; it is a normal error-
path UAF/resource-teardown fix.]`
**Step 9.4:** Backport to this 6.18.y tree on technical merit.
### Why it matters here
`usb_audio_probe()` can build PCM, endpoints, MIDI (including MIDI 2.0
input URBs) and mixer status URBs before `chip->num_interfaces++`. If
that first probe fails, 6.18 only does `snd_card_free()`. ALSA then
frees rawmidi/UMP and mixer devices while USB completions can still run,
and only afterwards runs `snd_usb_audio_free()`. Unplug already stops
those components first; probe error did not.
### Risk vs benefit
Benefit is avoiding oops/UAF when USB audio probe fails. Risk is low:
the helper is the current disconnect body, and free paths already
tolerate a prior disconnect.
### Concerns
Mainline’s `snd_refcount_sync()` is not in 6.18; it must keep
`wait_event`. That is already how this tree’s disconnect path looks, so
no extra prerequisite. The earlier MIDI2 URB-kill backport is necessary
but not sufficient.
Verification:
- [Phase 1] Parsed subject/body/tags: no Fixes/Reported-by; maintainer
SOB; Codex assisted
- [Phase 2] Diff: helper extracted from `__usb_audio_disconnect`, called
from `!num_interfaces` probe error before `snd_card_free()`
- [Phase 2] Confirmed mixer URB submit at create
(`usb_submit_urb(mixer->urb)` in mixer.c); MIDI2
`start_input_streams()` during `snd_usb_midi_v2_create()`
- [Phase 2] Confirmed `snd_card` release: `snd_device_free_all()` then
`card->private_free`; UMP is a rawmidi snd_device
- [Phase 2] Confirmed `input_urb_complete()` uses `ep->ump` unless
`ep->disconnected`
- [Phase 3] `git blame` on pre-fix error path: 61a6a108d15213 (2011)
- [Phase 3] `git merge-base --is-ancestor 4c16176fc11a6 HEAD` — sibling
MIDI2 UAF fix is in this tree and does not call disconnect before
`snd_card_free()`
- [Phase 3] Historical UAF on same path: 5f8cf71258261
- [Phase 4] `b4 dig -c 3213bf9885e3356fff12ac18b12d4c2fb4687734` → msgid
20260618170026.192212-1; v1 only; Iwai applied; To/Cc linux-sound +
Iwai + Kysela
- [Phase 4] WebFetch lore/msgid.link returned 403; discussion recovered
via `b4 dig -m`
- [Phase 5] `usb_audio_probe` is the usb_driver probe; MIDI created from
`snd_usb_create_stream()`
- [Phase 6] `git describe HEAD` = v6.18.53-5049-g0f0bdc2b0dffb; `make
kernelversion` = 6.18.53
- [Phase 6] `git grep error_no_register v6.18 -- sound/usb/card.c` shows
bare `snd_card_free` with no disconnect
- [Phase 6] v6.18 has `snd_usb_midi_v2_disconnect_all` and
`snd_usb_endpoint_release`
- [Phase 8] Failure mode: UAF from live MIDI2/mixer URBs during
`snd_card_free()`, severity HIGH
- UNVERIFIED: stable@ mailing list thread (lore HTTP 403)
**YES**
sound/usb/card.c | 70 ++++++++++++++++++++++++++----------------------
1 file changed, 38 insertions(+), 32 deletions(-)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 85249606a6b18..d8e096f71412a 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -904,6 +904,40 @@ static int try_to_register_card(struct snd_usb_audio *chip, int ifnum)
return 0;
}
+static void usb_audio_disconnect_components(struct snd_usb_audio *chip)
+{
+ struct snd_usb_stream *as;
+ struct snd_usb_endpoint *ep;
+ struct usb_mixer_interface *mixer;
+ struct list_head *p;
+
+ /* release the pcm resources */
+ list_for_each_entry(as, &chip->pcm_list, list) {
+ snd_usb_stream_disconnect(as);
+ }
+ /* release the endpoint resources */
+ list_for_each_entry(ep, &chip->ep_list, list) {
+ snd_usb_endpoint_release(ep);
+ }
+ /* release the midi resources */
+ list_for_each(p, &chip->midi_list) {
+ snd_usbmidi_disconnect(p);
+ }
+ snd_usb_midi_v2_disconnect_all(chip);
+ /*
+ * Nice to check quirk && quirk->shares_media_device and
+ * then call the snd_media_device_delete(). Don't have
+ * access to the quirk here. snd_media_device_delete()
+ * accesses mixer_list
+ */
+ snd_media_device_delete(chip);
+
+ /* release mixer resources */
+ list_for_each_entry(mixer, &chip->mixer_list, list) {
+ snd_usb_mixer_disconnect(mixer);
+ }
+}
+
/*
* probe the active usb device
*
@@ -1076,8 +1110,10 @@ static int usb_audio_probe(struct usb_interface *intf,
* decrement before memory is possibly returned.
*/
atomic_dec(&chip->active);
- if (!chip->num_interfaces)
+ if (!chip->num_interfaces) {
+ usb_audio_disconnect_components(chip);
snd_card_free(chip->card);
+ }
}
return err;
}
@@ -1090,49 +1126,19 @@ static bool __usb_audio_disconnect(struct usb_interface *intf,
struct snd_usb_audio *chip,
struct snd_card *card)
{
- struct list_head *p;
-
guard(mutex)(®ister_mutex);
if (platform_ops && platform_ops->disconnect_cb)
platform_ops->disconnect_cb(chip);
if (atomic_inc_return(&chip->shutdown) == 1) {
- struct snd_usb_stream *as;
- struct snd_usb_endpoint *ep;
- struct usb_mixer_interface *mixer;
-
/* wait until all pending tasks done;
* they are protected by snd_usb_lock_shutdown()
*/
wait_event(chip->shutdown_wait,
!atomic_read(&chip->usage_count));
snd_card_disconnect(card);
- /* release the pcm resources */
- list_for_each_entry(as, &chip->pcm_list, list) {
- snd_usb_stream_disconnect(as);
- }
- /* release the endpoint resources */
- list_for_each_entry(ep, &chip->ep_list, list) {
- snd_usb_endpoint_release(ep);
- }
- /* release the midi resources */
- list_for_each(p, &chip->midi_list) {
- snd_usbmidi_disconnect(p);
- }
- snd_usb_midi_v2_disconnect_all(chip);
- /*
- * Nice to check quirk && quirk->shares_media_device and
- * then call the snd_media_device_delete(). Don't have
- * access to the quirk here. snd_media_device_delete()
- * accesses mixer_list
- */
- snd_media_device_delete(chip);
-
- /* release mixer resources */
- list_for_each_entry(mixer, &chip->mixer_list, list) {
- snd_usb_mixer_disconnect(mixer);
- }
+ usb_audio_disconnect_components(chip);
}
if (chip->quirk_flags & QUIRK_FLAG_DISABLE_AUTOSUSPEND)
--
2.53.0
next prev parent reply other threads:[~2026-10-19 14:06 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20261019135441.1420968-1-sashal@kernel.org>
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18] ALSA: usb-audio: Add MIN_MUTE quirk for Creative Sound Blaster Play! 3 Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Fix speakers on ASUS ROG Zephyrus G14 GA403UM Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda/realtek: Add quirk for Lenovo IdeaPad Slim 3 15ABR8 Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/conexant: Add mute LED quirk for HP ProBook 440 G5 Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: Add mute LED support for HP Pavilion 15-eh2xxx Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18] ALSA: hda/conexant: Add pin config quirk for Huawei Matebook Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: Add ALC235 support for headset mode Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18-5.10] ASoC: Intel: bytcr_rt5651: Add quirk for Chuwi Hi8 with generic DMI strings Sasha Levin
2026-10-19 13:45 ` [PATCH AUTOSEL 6.18-6.12] soundwire: intel_auxdevice: Add cs42l44 to wake_capable_list Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18-6.12] ASoC: SOF: Intel: mtl: Power down DSP if it is left enabled in pre_fw_run() Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: Limit mic boost on Positivo N15RPE-S Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18-5.15] ALSA: hda/realtek: add missing error checks for COEF index reads in alc269 Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18-6.12] ASoC: rt712-sdca: Pull high JD2 to prevent from entering TV mode Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Enable mute LEDs on HP Spectre x360 16-aa0xxx Sasha Levin
2026-10-19 13:46 ` [PATCH AUTOSEL 6.18-5.10] ASoC: codec: max98926: fixup invert setup mask Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-6.1] soundwire: dmi-quirks: Disable ghost Realtek on Asus Expertbook Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Fix ALC700 audio on Intel Hades Canyon Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-6.1] soundwire: dmi-quirks: Disable ghost Realtek on Asus ROG Zephyrus Duo Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-5.15] ALSA: hda/conexant: Always enable the headset-mic pin on plugin Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18] ASoC: codecs: uda1342: Leave cache-only mode before syncing Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda/realtek: Add quirk for Acer Nitro AN515-45 Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-5.15] ALSA: usb-audio: Add native DSD support for Cambridge Audio streamers Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18] ALSA: hda: Add Lisuan HDMI controller and codec support Sasha Levin
2026-10-19 13:47 ` [PATCH AUTOSEL 6.18-6.1] ALSA: usb-audio: Rename the Audient iD14 monitor mix volume control Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18] ALSA: hda: Add support for Hygon family 18h model 5h HD-Audio Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18-5.10] ALSA: usx2y: Stop clearing urb->hcpriv before submission Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: Enable mute LED on HP Laptop 15-dy0xxx Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: add missing NULL check for codec->bus->pci Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: Add quirk for ASRock NUC BOX-358H Sasha Levin
2026-10-19 13:48 ` [PATCH AUTOSEL 6.18-6.6] ASoC: amd: acp-config: Add HVY-WXX9/M1060 DMI quirk Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18-6.1] ALSA: usb-audio: Add iD14 MkI to monitor-mix volume quirk Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18] ALSA: hda: Force resume if acomp notified during system suspend Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook G8+ Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18-5.15] soundwire: dmi-quirks: add a global ghost list Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18-6.1] soundwire: dmi-quirks: Disable ghost Realtek on Asus Zenbook Duo Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: Add mute LED quirk for HP Victus 15-fb2xxx Sasha Levin
2026-10-19 13:49 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/intel: Add sanity check for BAR0 size Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-6.1] ASoC: amd: yc: Add DMI entry for Alienware m18 R1 AMD Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: Limit internal mic boost on HP Pavilion 15 (103c:2164) Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-5.15] ALSA: usb-audio: Add mixer mapping for MSI MAG B850M MORTAR WIFI Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Fix mute LED for HP Victus 15-fa1xxx (MB 8C3F) Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-6.1] ASoC: amd: yc: Add DMI quirk for Lenovo V15 G6 ARP Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-5.10] ALSA: usb-audio: Skip mixer creation on M-Audio Venom Sasha Levin
2026-10-19 13:50 ` [PATCH AUTOSEL 6.18-6.1] ASoC: codecs: max98396: Unwind supplies on resume failure Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18] ASoC: cs35l56: Add support for CS35L62 for SoundWire Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: Add quirk for Acer Nitro ANV16-42 headset mic Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: Add quirk for HP ENVY 13-aq1xxx Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18-5.10] ASoC: tlv320aic26: remove keyclick sysfs file Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda: Check snd_hda_power_pm construct error before executing verb Sasha Levin
2026-10-19 13:51 ` [PATCH AUTOSEL 6.18-6.6] ALSA: hda/realtek: Fix speakers on ASUS PM3406CHA Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Add quirk for Lenovo ThinkBook 16p Gen 3 ARH (21EK) Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.6] ASoC: sma1303: remove fault-check sysfs group on remove Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.1] ASoC: amd: yc: Add Lenovo ThinkPad E16 Gen 2 (21JN) to quirks Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.12] ASoC: amd: acp3x-es83xx: Add HVY-WXX9/M1060 DMI quirk Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 14-dv1001TU Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda/realtek: Add quirk for ASUS VivoBook M515DA/X515DAP Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 15-ec1xxx Sasha Levin
2026-10-19 13:52 ` [PATCH AUTOSEL 6.18-6.12] ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 15-eg3xxx (103c:8bfd) Sasha Levin
2026-10-19 13:53 ` Sasha Levin [this message]
2026-10-19 13:53 ` [PATCH AUTOSEL 6.18-5.10] ASoC: hdac_hdmi: Fix resource cleanup on probe failure Sasha Levin
2026-10-19 13:53 ` [PATCH AUTOSEL 6.18-5.10] ALSA: hda/conexant: Add NULL check for dc_mode_path Sasha Levin
2026-10-19 13:53 ` [PATCH AUTOSEL 6.18-6.1] ALSA: hda/realtek: Fix headset mic on ASUS Vivobook S14 S5406SA Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261019135441.1420968-497-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=perex@perex.cz \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.com \
--cc=tiwai@suse.de \
--cc=zzzccc427@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox