public inbox for patches@lists.linux.dev
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Pengpeng Hou <pengpeng@iscas.ac.cn>, Takashi Iwai <tiwai@suse.de>,
	Sasha Levin <sashal@kernel.org>,
	perex@perex.cz, tiwai@suse.com, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 7.0-6.12] ALSA: asihpi: detect truncated control names
Date: Mon, 20 Apr 2026 09:08:10 -0400	[thread overview]
Message-ID: <20260420131539.986432-24-sashal@kernel.org> (raw)
In-Reply-To: <20260420131539.986432-1-sashal@kernel.org>

From: Pengpeng Hou <pengpeng@iscas.ac.cn>

[ Upstream commit 18d4969e22cc3ff738257e1d7738aafc65a6d2d2 ]

asihpi_ctl_init() builds mixer control names in the fixed 44-byte
hpi_ctl->name buffer with sprintf().

This is not only a defensive cleanup. The current in-tree name tables and
format strings can already exceed 44 bytes. For example,

  "Bitstream 0 Internal 0 Monitor Playback Volume"

is 46 characters before the trailing NUL, so the current sprintf() call
writes past the end of hpi_ctl->name.

The generated control name is used as the ALSA control element key, so
blindly truncating it is not sufficient. Switch the formatting to
snprintf() and emit an error if truncation happens, showing the
truncated name while still keeping the write bounded to hpi_ctl->name.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Link: https://patch.msgid.link/20260328102808.33969-1-pengpeng@iscas.ac.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

Now I have all the information needed for a complete analysis. Let me
compile the findings.

---

## PHASE 1: COMMIT MESSAGE FORENSICS

**Step 1.1**: Subsystem: `sound/pci/asihpi` (ALSA PCI audio driver).
Action verb: "detect" (but the real action is **fixing** a buffer
overflow by bounding writes). Summary: Replaces unbounded `sprintf()`
with bounded `snprintf()` on a fixed 44-byte buffer.

**Step 1.2**: Tags:
- Signed-off-by: Pengpeng Hou (author), Takashi Iwai (ALSA subsystem
  maintainer)
- Link:
  `https://patch.msgid.link/20260328102808.33969-1-pengpeng@iscas.ac.cn`
- No Fixes: tag, no Reported-by:, no Cc: stable (expected for manual
  review candidates)

**Step 1.3**: The commit body explicitly identifies a concrete buffer
overflow: the name "Bitstream 0 Internal 0 Monitor Playback Volume" is
46 characters + NUL = 47 bytes, exceeding the 44-byte `hpi_ctl->name`
buffer. The `sprintf()` call writes past the end of the buffer. The fix
bounds the write with `snprintf()` and emits an error on truncation.

**Step 1.4**: This is NOT a hidden bug fix — the commit message is clear
that the current in-tree code overflows the buffer. It explicitly says
"This is not only a defensive cleanup."

## PHASE 2: DIFF ANALYSIS

**Step 2.1**: Single file modified: `sound/pci/asihpi/asihpi.c` (+22,
-14). Single function modified: `asihpi_ctl_init()`. Scope: surgical,
single-function fix.

**Step 2.2**: Three `sprintf()` calls (one per branch of the if/else)
are replaced with `snprintf()` using `sizeof(hpi_ctl->name)` as the
bound. A new `int len` variable captures the return value, and a check
at the end emits `pr_err()` if truncation occurred.

**Step 2.3**: Bug category: **Buffer overflow / out-of-bounds write**.
The `name` buffer is defined as:

```1280:1280:sound/pci/asihpi/asihpi.c
        char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* copied to
snd_ctl_elem_id.name[44]; */
```

`SNDRV_CTL_ELEM_ID_NAME_MAXLEN` = 44. The longest possible generated
name ("Bitstream 0 Internal 0 Monitor Playback Volume") = 46 chars + NUL
= 47 bytes. The `sprintf()` writes 3 bytes past the end.

**Step 2.4**: Fix is obviously correct — `snprintf()` is a drop-in
bounded replacement for `sprintf()`. No regression risk; the only
behavioral change is that overflow is prevented and logged.

## PHASE 3: GIT HISTORY INVESTIGATION

**Step 3.1**: `git blame` shows the buggy `sprintf()` calls were
introduced in commit `719f82d3987aad` (Eliot Blennerhassett, 2010-04-21)
— "ALSA: Add support of AudioScience ASI boards." This code has been
present since ~v2.6.35, meaning the bug exists in **all** active stable
trees.

**Step 3.2**: No Fixes: tag to follow.

**Step 3.3**: Recent history shows only cleanup/refactoring commits to
this file. No intermediate fix for this specific buffer overflow. The
patch is standalone.

**Step 3.4**: Author Pengpeng Hou has other commits that are buffer-
safety/bounds-check fixes (e.g., NFC, networking). The patch was
reviewed and requested in its final form by Takashi Iwai, the ALSA
maintainer.

**Step 3.5**: No dependencies. The diff only changes `sprintf→snprintf`
and adds a bounds check. The surrounding code is unchanged since
2010-2011 and exists identically in stable trees.

## PHASE 4: MAILING LIST AND EXTERNAL RESEARCH

**Step 4.1**: b4 dig found the thread at
`https://patch.msgid.link/20260328102808.33969-1-pengpeng@iscas.ac.cn`.
The patch went through v1 → v2 → v3. Takashi Iwai reviewed v1/v2,
confirmed the overflow is real ("if the string overflow can happen
really, it's rather a bigger problem"), and explicitly requested the v3
revision with `snprintf()` + error reporting. He applied v3 with
"Applied to for-next branch now."

**Step 4.2**: Takashi Iwai (ALSA maintainer) reviewed the patch. The
linux-sound mailing list was CC'd.

**Step 4.3**: No external bug report — found via code inspection.

**Step 4.4**: Single standalone patch, not part of a series.

**Step 4.5**: No prior stable discussion found.

## PHASE 5: CODE SEMANTIC ANALYSIS

**Step 5.1**: Single function modified: `asihpi_ctl_init()`.

**Step 5.2**: `asihpi_ctl_init()` is called from ~10 places:
`snd_asihpi_volume_new`, `snd_asihpi_level_new`, `snd_asihpi_meter_add`,
`snd_asihpi_mux_new`, `snd_asihpi_cmode_new`, `snd_asihpi_tuner_new`,
etc. All called during mixer initialization in
`snd_card_asihpi_mixer_new()`.

**Step 5.3**: The function formats a control name and stores it in
`hpi_ctl->name`, which is then used as the ALSA control element key via
`snd_control->name = hpi_ctl->name`.

**Step 5.4**: The call chain is: PCI probe →
`snd_card_asihpi_mixer_new()` → control type builders →
`asihpi_ctl_init()`. The `hpi_ctl` struct is **stack-allocated** at line
2528:

```2528:2528:sound/pci/asihpi/asihpi.c
        struct hpi_control hpi_ctl, prev_ctl;
```

The `name` field is the **last field** of `struct hpi_control`, so the
overflow writes past the struct into adjacent stack memory (potentially
corrupting `prev_ctl` or other stack variables).

**Step 5.5**: The existing name tables contain entries like "Bitstream"
(9 chars), "Internal" (8 chars), "BLU-Link" (8 chars). Combined with
"Monitor Playback " (18 chars including trailing space) and control
names like "Volume" (6 chars), several combinations can exceed 44 bytes.

## PHASE 6: STABLE TREE ANALYSIS

**Step 6.1**: The buggy code was introduced in 2010 (v2.6.35 era). It
exists in all active stable trees. The `asihpi_ctl_init()` function has
barely changed since then.

**Step 6.2**: The patch should apply cleanly — changes since v6.6 and
v5.15 to this file are minor cleanups that don't touch this function.
The only relevant nearby change was `1882c12ae2ab0` (strscpy instead of
strcpy in a different function).

**Step 6.3**: No related fix already in stable for this specific buffer
overflow.

## PHASE 7: SUBSYSTEM AND MAINTAINER CONTEXT

**Step 7.1**: Subsystem: ALSA PCI audio driver (asihpi). Criticality:
PERIPHERAL — this is a specific hardware driver for AudioScience ASI
boards. However, buffer overflows in any driver are security-relevant.

**Step 7.2**: The driver receives occasional maintenance (last few
changes are cleanups and minor fixes). It's a mature, low-activity
driver.

## PHASE 8: IMPACT AND RISK ASSESSMENT

**Step 8.1**: Users of AudioScience ASI audio hardware are affected.
This is niche professional audio hardware, but users who have it depend
on this driver.

**Step 8.2**: Trigger requires specific hardware/firmware configuration
where source and destination nodes produce a name exceeding 44 bytes.
The maintainer noted the specific overflow case "didn't happen in
reality" with existing firmware, but it's a latent overflow that exists
with the current in-tree string tables.

**Step 8.3**: Failure mode: **Stack buffer overflow** — the `name` field
is at the end of a stack-allocated struct. The overflow corrupts
adjacent stack memory. Potential consequences: stack corruption, crash,
or undefined behavior. Severity: **HIGH** (buffer overflow, potential
crash or security impact).

**Step 8.4**:
- **Benefit**: Prevents a proven buffer overflow that can occur with in-
  tree string values. Low practical frequency, but consequences are
  severe (stack corruption).
- **Risk**: Very low. The change is `sprintf()` → `snprintf()` + bounds
  check. No behavioral change for names that fit. Adds an error log for
  names that don't.
- **Ratio**: Favorable — very low risk for meaningful safety
  improvement.

## PHASE 9: FINAL SYNTHESIS

**Evidence FOR backporting**:
- Fixes a real buffer overflow: `sprintf()` can write past the end of a
  44-byte buffer
- The overflow is provable from in-tree code (commit message gives a
  concrete 46-char example)
- Stack-allocated buffer → stack corruption risk
- Fix is minimal (single function, +22/-14 lines), obviously correct
- Reviewed and applied by Takashi Iwai (ALSA subsystem maintainer)
- Patch went through 3 revisions with maintainer feedback
- Bug exists in all stable trees (code from 2010)
- Patch should apply cleanly

**Evidence AGAINST backporting**:
- Niche hardware driver (AudioScience ASI boards)
- Practical trigger depends on specific firmware/hardware configuration
- Maintainer noted the overflow "didn't happen in reality" with current
  firmware
- No crash reports from users

**Stable rules checklist**:
1. Obviously correct and tested? **YES** — simple sprintf→snprintf
2. Fixes a real bug? **YES** — proven buffer overflow with in-tree
   strings
3. Important issue? **YES** — buffer overflow / stack corruption
4. Small and contained? **YES** — single function, single file
5. No new features? **YES** — purely a bug fix
6. Can apply to stable? **YES** — code unchanged since 2010

## Verification

- [Phase 1] Parsed commit message: identifies 46-char control name that
  overflows 44-byte buffer
- [Phase 2] Diff analysis: 3 `sprintf()` → `snprintf()` conversions +
  truncation check in `asihpi_ctl_init()`
- [Phase 3] git blame: buggy sprintf() code introduced in commit
  719f82d3987aad (2010, v2.6.35), present in all stable trees
- [Phase 3] git log v6.6/v5.15: confirmed function is essentially
  unchanged since introduction
- [Phase 4] b4 dig -c 18d4969e22cc3: found original thread, patch v1→v3
  evolution
- [Phase 4] b4 dig -a: confirmed v3 is the applied version, v1 used
  scnprintf, Takashi requested snprintf+check
- [Phase 4] Mailing list: Takashi Iwai confirmed overflow is real,
  requested v3, applied to for-next
- [Phase 5] Verified `struct hpi_control` has `name[44]` as last field,
  struct is stack-allocated in `snd_card_asihpi_mixer_new()`
- [Phase 5] Verified SNDRV_CTL_ELEM_ID_NAME_MAXLEN = 44 in
  include/uapi/sound/asound.h
- [Phase 5] Verified name tables: "Bitstream"(9) + " 0 "(3) +
  "Internal"(8) + " 0 "(3) + "Monitor Playback "(18) + "Volume"(6) = 47
  chars with NUL → 3-byte overflow
- [Phase 6] Code exists in all active stable trees, patch should apply
  cleanly
- [Phase 8] Stack buffer overflow severity: HIGH (stack corruption
  possible)

The fix is small, obviously correct, prevents a real buffer overflow
with in-tree string values, was reviewed and refined by the ALSA
maintainer through 3 iterations, and applies cleanly to stable trees.

**YES**

 sound/pci/asihpi/asihpi.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c
index 3a64d05628030..b1c7ed7f1604e 100644
--- a/sound/pci/asihpi/asihpi.c
+++ b/sound/pci/asihpi/asihpi.c
@@ -1362,6 +1362,7 @@ static void asihpi_ctl_init(struct snd_kcontrol_new *snd_control,
 				struct hpi_control *hpi_ctl,
 				char *name)
 {
+	int len;
 	char *dir;
 	memset(snd_control, 0, sizeof(*snd_control));
 	snd_control->name = hpi_ctl->name;
@@ -1384,23 +1385,30 @@ static void asihpi_ctl_init(struct snd_kcontrol_new *snd_control,
 		dir = "Playback "; /* PCM Playback source, or  output node */
 
 	if (hpi_ctl->src_node_type && hpi_ctl->dst_node_type)
-		sprintf(hpi_ctl->name, "%s %d %s %d %s%s",
-			asihpi_src_names[hpi_ctl->src_node_type],
-			hpi_ctl->src_node_index,
-			asihpi_dst_names[hpi_ctl->dst_node_type],
-			hpi_ctl->dst_node_index,
-			dir, name);
+		len = snprintf(hpi_ctl->name, sizeof(hpi_ctl->name),
+			       "%s %d %s %d %s%s",
+			       asihpi_src_names[hpi_ctl->src_node_type],
+			       hpi_ctl->src_node_index,
+			       asihpi_dst_names[hpi_ctl->dst_node_type],
+			       hpi_ctl->dst_node_index,
+			       dir, name);
 	else if (hpi_ctl->dst_node_type) {
-		sprintf(hpi_ctl->name, "%s %d %s%s",
-		asihpi_dst_names[hpi_ctl->dst_node_type],
-		hpi_ctl->dst_node_index,
-		dir, name);
+		len = snprintf(hpi_ctl->name, sizeof(hpi_ctl->name),
+			       "%s %d %s%s",
+			       asihpi_dst_names[hpi_ctl->dst_node_type],
+			       hpi_ctl->dst_node_index,
+			       dir, name);
 	} else {
-		sprintf(hpi_ctl->name, "%s %d %s%s",
-		asihpi_src_names[hpi_ctl->src_node_type],
-		hpi_ctl->src_node_index,
-		dir, name);
+		len = snprintf(hpi_ctl->name, sizeof(hpi_ctl->name),
+			       "%s %d %s%s",
+			       asihpi_src_names[hpi_ctl->src_node_type],
+			       hpi_ctl->src_node_index,
+			       dir, name);
 	}
+
+	if (len >= sizeof(hpi_ctl->name))
+		pr_err("asihpi: truncated control name: %s\n",
+		       hpi_ctl->name);
 }
 
 /*------------------------------------------------------------
-- 
2.53.0


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

Thread overview: 91+ 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 ` [PATCH AUTOSEL 6.18] ice: ptp: don't WARN when controlling PF is unavailable Sasha Levin
2026-04-20 13:08 ` [PATCH AUTOSEL 6.18] e1000: check return value of e1000_read_eeprom 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 ` Sasha Levin [this message]
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 ` [PATCH AUTOSEL 7.0-5.15] ALSA: pcm: Serialize snd_pcm_suspend_all() with open_mutex Sasha Levin
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 ` [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 ` [PATCH AUTOSEL 6.18] ixgbevf: add missing negotiate_features op to Hyper-V ops table 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 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-24-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=pengpeng@iscas.ac.cn \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox