All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: "Cássio Gabriel" <cassiogabrielcontato@gmail.com>,
	"Takashi Iwai" <tiwai@suse.com>, "Takashi Iwai" <tiwai@suse.de>,
	"Sasha Levin" <sashal@kernel.org>,
	perex@perex.cz, linux-sound@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 7.0-5.15] ALSA: pcm: Serialize snd_pcm_suspend_all() with open_mutex
Date: Mon, 20 Apr 2026 09:08:32 -0400	[thread overview]
Message-ID: <20260420131539.986432-46-sashal@kernel.org> (raw)
In-Reply-To: <20260420131539.986432-1-sashal@kernel.org>

From: Cássio Gabriel <cassiogabrielcontato@gmail.com>

[ Upstream commit 1a56641b7ae4f19216774a59d68024be3e6197d0 ]

snd_pcm_suspend_all() walks all PCM substreams and uses a lockless
runtime check to skip closed streams. It then calls snd_pcm_suspend()
for each remaining substream and finally runs snd_pcm_sync_stop() in a
second pass.

The runtime lifetime is still controlled by pcm->open_mutex in the
open/release path. That means a concurrent close can clear or free
substream->runtime after the initial check in snd_pcm_suspend_all(),
leaving the later suspend or sync-stop path to dereference a stale or
NULL runtime pointer.

Serialize snd_pcm_suspend_all() with pcm->open_mutex so the runtime
pointer stays stable across both loops. This matches the existing PCM
runtime lifetime rule already used by other core paths that access
substream->runtime outside the stream lock.

Suggested-by: Takashi Iwai <tiwai@suse.com>
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260327-alsa-pcm-suspend-open-close-lock-v2-1-cc4baca4dcd6@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:

Here is my complete analysis:

---

## PHASE 1: COMMIT MESSAGE FORENSICS

### Step 1.1: Subject Line
- **Subsystem**: `ALSA: pcm:` (ALSA PCM core)
- **Action verb**: "Serialize" — implies fixing a synchronization issue
  (race condition)
- **Summary**: Serialize `snd_pcm_suspend_all()` with `open_mutex` to
  prevent concurrent access

Record: [ALSA PCM core] [Serialize] [Add mutex to prevent race between
suspend and open/close]

### Step 1.2: Tags
- **Suggested-by: Takashi Iwai `<tiwai@suse.com>`** — Takashi Iwai is
  the ALSA subsystem maintainer. He suggested this fix, which carries
  enormous weight.
- **Signed-off-by: Takashi Iwai `<tiwai@suse.de>`** — Maintainer also
  signed off (committed it).
- **Signed-off-by: Cássio Gabriel** — Author of the patch.
- **Link:** to patch.msgid.link (v2 of the patch).
- No Fixes: tag, no Reported-by, no Cc: stable — expected for autosel
  candidates.

Record: Fix suggested and committed by the subsystem maintainer (Takashi
Iwai). This is the highest trust signal possible.

### Step 1.3: Commit Body Analysis
The commit describes:
- **Bug**: `snd_pcm_suspend_all()` walks PCM substreams with a lockless
  runtime check, then calls `snd_pcm_suspend()` and
  `snd_pcm_sync_stop()`. A concurrent close can clear/free
  `substream->runtime` via the open/close path (which uses
  `pcm->open_mutex`).
- **Failure mode**: Stale or NULL runtime pointer dereference —
  crash/UAF.
- **Fix approach**: Take `pcm->open_mutex` in `snd_pcm_suspend_all()`,
  matching the existing PCM runtime lifetime rule.

Record: UAF/NULL deref race during system suspend. Author explains clear
mechanism.

### Step 1.4: Hidden Bug Fix Detection
This is NOT hidden — it's an explicit race condition fix. The code
itself had a `/* FIXME: the open/close code should lock this as well */`
comment acknowledging the bug.

---

## PHASE 2: DIFF ANALYSIS

### Step 2.1: Inventory
- **Files changed**: 1 (`sound/core/pcm_native.c`)
- **Lines**: +5 (including comment update), -1 (removing FIXME comment).
  Net functional change: +1 line (`guard(mutex)(&pcm->open_mutex)`)
- **Functions modified**: `snd_pcm_suspend_all()`
- **Scope**: Single-file, single-function, surgical fix.

### Step 2.2: Code Flow Change
**Before**: `snd_pcm_suspend_all()` iterates substreams without any
lock, checking `substream->runtime` and calling `snd_pcm_suspend()` /
`snd_pcm_sync_stop()` unsynchronized with the open/close path.

**After**: `guard(mutex)(&pcm->open_mutex)` is taken at function entry,
serializing the entire function with the release path
(`snd_pcm_release()` at line 2941 holds `open_mutex` around
`snd_pcm_release_substream()`).

### Step 2.3: Bug Mechanism
**Category**: Race condition / Use-After-Free / NULL pointer dereference

The race:
1. Thread A (`snd_pcm_suspend_all`): checks `!substream->runtime` → sees
   non-NULL
2. Thread B (`snd_pcm_release`): under `open_mutex`, calls
   `snd_pcm_detach_substream()` → sets `substream->runtime = NULL` →
   `kfree(runtime)` (confirmed in `sound/core/pcm.c` lines 980-1003)
3. Thread A: calls `snd_pcm_suspend(substream)` → dereferences
   freed/NULL runtime → **CRASH**

Second race window: the second loop calls `snd_pcm_sync_stop()` on ALL
substreams, which accesses `substream->runtime` (line 641).

### Step 2.4: Fix Quality
- Obviously correct: takes the same mutex already used by open/close
  paths.
- Minimal: one functional line added.
- Regression risk: Very low. The `open_mutex` is not taken in interrupt
  context; `snd_pcm_suspend()` internally uses
  `guard(pcm_stream_lock_irqsave)` which is a different lock, so no
  deadlock risk. The mutex merely serializes with open/close.

---

## PHASE 3: GIT HISTORY INVESTIGATION

### Step 3.1: Blame
The FIXME comment (`/* FIXME: the open/close code should lock this as
well */`) was introduced in commit `8d19b4e0b377e2` (2021-02-06, "ALSA:
pcm: Use for_each_pcm_substream() macro") by Takashi Iwai himself. The
core `snd_pcm_suspend_all` function dates back to `1da177e4c3f41` (Linus
Torvalds, 2005-04-16, the initial Linux tree).

Record: The race has existed since v2.6.12 (original tree). It was made
worse in v5.12 when `snd_pcm_sync_stop` loop was added (commit
`2c87c1a49c9d`). The FIXME was planted by the maintainer acknowledging
the bug.

### Step 3.2: Fixes tag
No Fixes: tag present. The race effectively has existed since the
beginning.

### Step 3.3: File History
Recent changes to `pcm_native.c` include `guard()`-based locking
conversions and race fixes (e.g., `93a81ca065775` "Fix race of buffer
access at PCM OSS layer"). This shows the subsystem is actively being
hardened for concurrency.

### Step 3.4: Author
Cássio Gabriel has one other commit in the sound subsystem. However, the
fix was **suggested by Takashi Iwai** (ALSA maintainer) and **committed
by Takashi Iwai**, giving it the highest credibility.

### Step 3.5: Dependencies
The fix uses `guard(mutex)` which requires the cleanup.h infrastructure
(available since v6.5) and the guard conversions in pcm_native.c
(`dd0da75b9a276`, available since v6.12). For older stable trees, a
trivial adaptation to `mutex_lock`/`mutex_unlock` would be needed.

---

## PHASE 4: MAILING LIST RESEARCH

### Step 4.1-4.2: Patch Discussion
b4 dig did not find the patch by commit hash (likely because this is on
a v7.0 tree). The Link: tag points to `patch.msgid.link`, which
redirected to lore.kernel.org but was blocked by anti-bot protection.
However, the commit subject says "v2", indicating the patch went through
at least two revisions. The maintainer (Takashi Iwai) suggested and
committed the fix — the highest form of endorsement.

### Step 4.3-4.5: Bug Report and Stable History
No explicit bug report (no Reported-by:). This is a proactive fix based
on code analysis (the FIXME comment). No prior stable discussion found.

---

## PHASE 5: CODE SEMANTIC ANALYSIS

### Step 5.1-5.2: Callers of `snd_pcm_suspend_all`
- `sound/core/pcm.c:do_pcm_suspend()` — PM callback, called during
  **system suspend**
- `sound/soc/soc-core.c` — ASoC suspend
- `sound/hda/common/codec.c` — HDA codec suspend
- `sound/usb/usx2y/us144mkii.c` — USB audio suspend

This is called on **every system suspend** for every PCM device. This
means every laptop, desktop, or embedded system with audio is affected.

### Step 5.3-5.4: Call Chain
System suspend → `do_pcm_suspend()` → `snd_pcm_suspend_all()` → race
with user-space closing audio fd → `snd_pcm_release()` → UAF/NULL deref.

Trigger: Closing a laptop lid while an audio application is running.
This is an extremely common scenario.

---

## PHASE 6: STABLE TREE ANALYSIS

### Step 6.1: Buggy Code in Stable
The buggy code (unsynchronized runtime access in `snd_pcm_suspend_all`)
has existed since v2.6.12. The `snd_pcm_sync_stop` second loop was added
around v5.12. All active stable trees contain the buggy code.

### Step 6.2: Backport Complications
For v7.0 and v6.12+: should apply cleanly (same `guard()`
infrastructure).
For v6.6 and older: would need trivial adaptation from `guard(mutex)` to
`mutex_lock`/`mutex_unlock`.

---

## PHASE 7: SUBSYSTEM CONTEXT

### Step 7.1: Subsystem Criticality
- **Subsystem**: ALSA PCM core (`sound/core/`)
- **Criticality**: IMPORTANT — affects every system with audio hardware
  (virtually all Linux systems)

### Step 7.2: Activity
Very actively maintained by Takashi Iwai. Recent commits show ongoing
concurrency hardening.

---

## PHASE 8: IMPACT AND RISK ASSESSMENT

### Step 8.1: Who Is Affected
Every Linux system with audio hardware (virtually universal).

### Step 8.2: Trigger Conditions
System suspend while an audio stream is being closed. This is a common
scenario on laptops (lid close while music playing). The race window is
between checking `substream->runtime` and using it — a narrow but real
window.

### Step 8.3: Failure Mode Severity
NULL pointer dereference or use-after-free → **kernel oops/crash during
suspend**. Severity: **CRITICAL**.

### Step 8.4: Risk-Benefit
- **Benefit**: HIGH — prevents kernel crash during suspend for all
  audio-capable systems
- **Risk**: VERY LOW — one functional line, uses existing mutex already
  employed by the open/close paths, no deadlock risk, suggested and
  committed by the subsystem maintainer
- **Ratio**: Strongly favorable

---

## PHASE 9: FINAL SYNTHESIS

### Step 9.1: Evidence Summary

**FOR backporting:**
- Fixes a real race condition (UAF / NULL deref) acknowledged by a FIXME
  comment from the subsystem maintainer
- Fix was suggested and committed by Takashi Iwai (ALSA maintainer)
- Minimal change: 1 functional line added
- Affects every system with audio during system suspend
- Failure mode is kernel crash (CRITICAL severity)
- Uses existing locking infrastructure already in use by the same code
  paths
- Second revision (v2), showing review iteration

**AGAINST backporting:**
- No user-reported crash (proactive fix based on code analysis)
- May need minor adaptation for older stable trees (guard →
  mutex_lock/unlock)

### Step 9.2: Stable Rules Checklist
1. Obviously correct and tested? **YES** — suggested by maintainer, uses
   existing mutex pattern
2. Fixes a real bug? **YES** — race between suspend and release, FIXME
   acknowledged the issue
3. Important issue? **YES** — UAF/NULL deref → kernel crash during
   suspend
4. Small and contained? **YES** — 1 functional line in 1 function in 1
   file
5. No new features or APIs? **YES** — pure synchronization fix
6. Can apply to stable? **YES** — clean for 6.12+, trivial adaptation
   for older

### Step 9.3: Exception Categories
Not an exception — this is a standard race condition fix, a core stable
candidate.

### Step 9.4: Decision
This is a textbook stable fix: a single-line mutex acquisition that
prevents a UAF/NULL deref race during system suspend, suggested and
committed by the subsystem maintainer, fixing a longstanding FIXME.

---

## Verification

- [Phase 1] Parsed tags: Suggested-by and Signed-off-by from Takashi
  Iwai (ALSA maintainer)
- [Phase 2] Diff analysis: +1 functional line
  (`guard(mutex)(&pcm->open_mutex)`), removes 1-line FIXME comment
- [Phase 2] Verified `snd_pcm_sync_stop()` accesses `substream->runtime`
  at line 641 without lock
- [Phase 2] Verified `snd_pcm_detach_substream()` sets
  `substream->runtime = NULL` and `kfree(runtime)` at lines 997-1003 of
  `sound/core/pcm.c`
- [Phase 2] Verified `snd_pcm_release()` holds `open_mutex` around
  `snd_pcm_release_substream()` at line 2941
- [Phase 3] git blame: FIXME comment introduced by Takashi Iwai in
  `8d19b4e0b377e2` (2021-02-06), core function from `1da177e4c3f41`
  (2005)
- [Phase 3] `snd_pcm_sync_stop` loop added in `2c87c1a49c9d11` ("Assure
  sync with pending stop operation at suspend", 2021)
- [Phase 3] `guard()` infrastructure for pcm_native.c in `dd0da75b9a276`
  (v6.12+)
- [Phase 4] b4 dig: did not find match (this is a v7.0 tree). Link: in
  commit points to v2 of the patch.
- [Phase 5] Callers: `do_pcm_suspend()` (PM callback), soc-core, HDA
  codec, USB audio — called on every system suspend
- [Phase 6] Buggy code present in all active stable trees (since
  v2.6.12)
- [Phase 7] ALSA PCM core — affects virtually all Linux systems with
  audio
- [Phase 8] Failure mode: NULL deref or UAF during system suspend →
  kernel crash (CRITICAL)

**YES**

 sound/core/pcm_native.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 5a64453da7283..1ccc482a8dfd3 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -1761,6 +1761,9 @@ static int snd_pcm_suspend(struct snd_pcm_substream *substream)
  * snd_pcm_suspend_all - trigger SUSPEND to all substreams in the given pcm
  * @pcm: the PCM instance
  *
+ * Takes and releases pcm->open_mutex to serialize against
+ * concurrent open/close while walking the substreams.
+ *
  * After this call, all streams are changed to SUSPENDED state.
  *
  * Return: Zero if successful (or @pcm is %NULL), or a negative error code.
@@ -1773,8 +1776,9 @@ int snd_pcm_suspend_all(struct snd_pcm *pcm)
 	if (! pcm)
 		return 0;
 
+	guard(mutex)(&pcm->open_mutex);
+
 	for_each_pcm_substream(pcm, stream, substream) {
-		/* FIXME: the open/close code should lock this as well */
 		if (!substream->runtime)
 			continue;
 
-- 
2.53.0


  parent reply	other threads:[~2026-04-20 13:16 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-20 13:07 [PATCH AUTOSEL 6.18] ALSA: hda/realtek: add quirk for Lenovo Yoga 7 2-in-1 16AKP10 Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 6.18] net: stmmac: Fix PTP ref clock for Tegra234 Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.12] ring-buffer: Enforce read ordering of trace_buffer cpumask and buffers Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.6] PCI: Prevent assignment to unsupported bridge windows Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-5.10] smb: client: fix integer underflow in receive_encrypted_read() Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-5.10] gpio: lp873x: normalize return value of gpio_get Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.12] ALSA: hda: cs35l41: Fix boost type for HP Dragonfly 13.5 inch G4 Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.18] wifi: mt76: don't return TXQ when exceeding max non-AQL packets Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 6.18] arm64: dts: imx91-tqma9131: improve eMMC pad configuration Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 6.18] ASoC: amd: acp: add ASUS HN7306EA quirk for legacy SDW machine Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.12] wifi: mac80211: properly handle error in ieee80211_add_virtual_monitor Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-5.10] net: qrtr: fix endian handling of confirm_rx field Sasha Levin
2026-04-20 13:07 ` [PATCH AUTOSEL 7.0-6.18] mmc: sdhci-esdhc-imx: wait for data transfer completion before reset Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] tracing/probe: reject non-closed empty immediate strings Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] media: rc: fix race between unregister and urb/irq callbacks Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] netfilter: xt_multiport: validate range encoding in checkentry Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] arm64: dts: imx93-tqma9352: improve eMMC pad configuration Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.12] dm vdo slab-depot: validate old zone count on load Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] wifi: mt76: mt792x: Fix a potential deadlock in high-load situations Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.12] orangefs: add usercopy whitelist to orangefs_op_cache Sasha Levin
2026-04-20 13:08 ` [Intel-wired-lan] [PATCH AUTOSEL 6.18] ice: ptp: don't WARN when controlling PF is unavailable Sasha Levin
2026-04-20 13:08   ` Sasha Levin
2026-04-20 13:08 ` [Intel-wired-lan] [PATCH AUTOSEL 6.18] e1000: check return value of e1000_read_eeprom Sasha Levin
2026-04-20 13:08   ` Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.19] ALSA: usb-audio: Add quirks for Arturia AF16Rig Sasha Levin
2026-04-20 13:27   ` Philip Willoughby
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.12] ALSA: asihpi: detect truncated control names Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] ALSA: hda/realtek: Add support for ASUS 2026 Commercial laptops using CS35L41 HDA Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] jfs: Set the lbmDone flag at the end of lbmIODone Sasha Levin
2026-04-20 14:10   ` Edward Adam Davis
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.19] ASoC: SDCA: Add CS47L47 to class driver Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] media: renesas: vsp1: rpf: Fix crop left and top clamping Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] ASoC: amd: yc: Add DMI entry for HP Laptop 15-fc0xxx Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] media: au0828: Fix green screen in analog Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] ASoC: Intel: avs: Fix memory leak in avs_register_i2s_test_boards() Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] nvme-loop: do not cancel I/O and admin tagset during ctrl reset/shutdown Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] bpf, sockmap: Annotate af_unix sock:: Sk_state data-races Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] net: wangxun: reorder timer and work sync cancellations Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] PCI: tegra194: Assert CLKREQ# explicitly by default Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.15] net: mvneta: support EPROBE_DEFER when reading MAC address Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] ALSA: hda/realtek: add quirk for Framework F111:000F Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] jfs: add dmapctl integrity check to prevent invalid operations Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] wifi: mac80211: Remove deleted sta links in ieee80211_ml_reconf_work() Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] HID: logitech-hidpp: fix race condition when accessing stale stack pointer Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] net/mlx5e: XSK, Increase size for chunk_size param Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] PCI: dwc: Proceed with system suspend even if the endpoint doesn't respond with PME_TO_Ack message Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] ACPI: processor: idle: Fix NULL pointer dereference in hotplug path Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] ppp: disconnect channel before nullifying pch->chan Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] wifi: iwlwifi: mvm: zero iwl_geo_tx_power_profiles_cmd before sending Sasha Levin
2026-04-20 13:08 ` Sasha Levin [this message]
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] Bluetooth: hci_qca: disable power control for WCN7850 when bt_en is not defined Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.6] Bluetooth: hci_qca: Fix missing wakeup during SSR memdump handling Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] pinctrl: intel: Fix the revision for new features (1kOhm PD, HW debouncer) Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] fbdev: viafb: check ioremap return value in viafb_lcd_get_mobile_state Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.19] drm/panel-edp: Add BOE NV153WUM-N42, CMN N153JCA-ELK, CSW MNF307QS3-2 Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0] drm/amdgpu/userq: remove queue from doorbell xarray Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] memory: brcmstb_memc: Expand LPDDR4 check to cover for LPDDR5 Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.12] nouveau: pci: quiesce GPU on shutdown Sasha Levin
2026-04-20 13:08   ` Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] perf/amd/ibs: Avoid race between event add and NMI Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.12] drm/amd/display: Fix dcn401_optimize_bandwidth Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] wifi: rtw88: coex: Ignore BT info byte 5 from RTL8821A Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] btrfs: tracepoints: get correct superblock from dentry in event btrfs_sync_file() Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] ALSA: hda/realtek: Add quirk for CSL Unity BF24B Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] media: stm32: dcmi: stop the dma transfer on overrun Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.10] ALSA: aoa/onyx: Fix OF node leak on probe failure Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] drm/bridge: waveshare-dsi: Register and attach our DSI device at probe Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] wifi: rtw89: retry efuse physical map dump on transient failure Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] netfilter: nfnetlink_queue: make hash table per queue Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] gpio: cgbc: normalize return value of gpio_get Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] HID: logitech-hidpp: Check bounds when deleting force-feedback effects Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] x86: shadow stacks: proper error handling for mmap lock Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.1] sched: Fix incorrect schedstats for rt and dl thread Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] wifi: iwlwifi: pcie: don't dump on reset handshake in dump Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] net: sfp: add quirks for Hisense and HSGQ GPON ONT SFP modules Sasha Levin
2026-04-20 13:08 ` [Intel-wired-lan] [PATCH AUTOSEL 6.18] ixgbevf: add missing negotiate_features op to Hyper-V ops table Sasha Levin
2026-04-20 13:08   ` Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-6.18] hwmon: (pmbus/isl68137) Add support for Renesas RAA228942 and RAA228943 Sasha Levin
2026-04-20 18:32   ` sashiko-bot
2026-04-20 13:08 ` [PATCH AUTOSEL 7.0-5.15] btrfs: use BTRFS_FS_UPDATE_UUID_TREE_GEN flag for UUID tree rescan check Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.19] Bluetooth: hci_ll: Enable BROKEN_ENHANCED_SETUP_SYNC_CONN for WL183x Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.18] wifi: mt76: abort ROC on chanctx changes Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.18] perf/amd/ibs: Limit ldlat->l3missonly dependency to Zen5 Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 6.18] drm/amdkfd: Fix queue preemption/eviction failures by aligning control stack size to GPU page size Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 6.18] clockevents: Prevent timer interrupt starvation Sasha Levin
2026-04-20 14:12   ` Thomas Gleixner
2026-04-21  6:26     ` [PATCH stable backport] clockevents: Add missing resets of the next_event_forced flag Thomas Gleixner
2026-04-21  7:44       ` Patch "clockevents: Add missing resets of the next_event_forced flag" has been added to the 7.0-stable tree gregkh
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-5.10] ASoC: tas2552: Allow audio enable GPIO to sleep Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.18] wifi: ath12k: Fix the assignment of logical link index Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.12] drm/amdgpu: fix DF NULL pointer issue for soc24 Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-6.18] drm/ttm: Avoid invoking the OOM killer when reading back swapped content Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 6.18] drm/vc4: Release runtime PM reference after binding V3D Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-5.10] media: i2c: mt9p031: Check return value of devm_gpiod_get_optional() in mt9p031_probe() Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 6.18] Bluetooth: hci_sync: annotate data-races around hdev->req_status Sasha Levin
2026-04-20 13:09 ` [PATCH AUTOSEL 7.0-5.10] ASoC: Intel: bytcr_rt5651: Fix MCLK leak on platform_clock_control error 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=20260420131539.986432-46-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=cassiogabrielcontato@gmail.com \
    --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 \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.