当前位置:首页>Linux>Linux Audio 子系统更新(v7.2-rc5 → v7.2-rc7)

Linux Audio 子系统更新(v7.2-rc5 → v7.2-rc7)

  • 2026-09-21 02:30:33
Linux Audio 子系统更新(v7.2-rc5 → v7.2-rc7)

Linux Audio 子系统更新(v7.2-rc5 → v7.2-rc7)

版本范围:v7.2-rc5 → v7.2-rc7 | 数据来源:git.kernel.org sound/

提交数 82 | 有效补丁(去 merge)80 | 活跃贡献者 30+ | 活跃域名 20+

一、总体判断

v7.2-rc5→rc7 期间音频子系统核心主题是 USB 音频 OOB/UAF 安全修复与 SDCA jack 检测竞态治理。USB 音频侧暴露多个严重内存安全缺陷:

  1. Type II inbound URB 的 DMA buffer 比 URB packet 数少一个 packet,导致 HCD 写越界;
  2. fill_max
     标志置位时 maxsize 未同步提升到 curpacksize,DMA buffer 远小于实际传输长度,直接破坏 kernel heap;
  3. implicit-feedback 同步包未 clamp 到 maxframesize,过大的 frame count 经 stride 缩放后进入 playback 队列驱动越界传输;
  4. snd_usbmidi_akai_output()
     OOB 写、RME Digiface status 栈信息泄漏、ump_to_endpoint() UAF、out_cvts double free。

这五项均为 USB 音频核心路径缺陷,影响所有对应设备。

ALSA 核心侧修复两个高危并发缺陷:

  1. snd_timer_close_locked()
     置 SNDRV_TIMER_IFLG_DEAD 后从不清除,seq timer reopen 命中已 dead 实例时 snd_timer_instance_free() 释放仍挂在 open_list_head/master_list 的对象,UAF;
  2. initialize_timer()
     中 tmr->ticks = 1000000000 / (r * freq),用户可控 resolution r=2^63 使 64 位乘积 wrap 为 0,除零 panic;
  3. snd_pcm_drain()
     linked stream 在 unlink 时未唤醒 sleep 队列,drainer 带着挂在已释放流上的 on-stack wait entry 返回,后续 wake_up() 走已释放栈帧。

ASoC SDCA 收到 11 个补丁(Charles Keepax 主导),系统性治理 jack 检测竞态:DAPM widget/route 创建远早于 ALSA control,IRQ 在 control 未就绪时注册导致 DAPM 图与硬件状态不一致。修复思路是新增 component 级 fixup_controls 回调,把 IRQ 注册推迟到 control 创建之后,并拆分 sdca_irq_cleanup_late() 处理 devm 生命周期。配套 4 个 SDCA bug fix(Control Range 校验、UMP message size robust、FDL 路径 firmware 释放、devm_acpi_table_put 指针修正)。

HDA Realtek alc269 收到 9 个 quirk 补丁,覆盖 HP Dragonfly Folio G3、HP Victus 16-e0xxx(mute LED)、HP Laptop 14s-dr1xxx(mute LED)、HP Pavilion All-in-One 27-ca1xxx、Infinix INBOOK X3 Slim、TongFang X6SP45xU、Acer Nitro 5 AN515-46(headset mic 修复)、Legion 7 15ASH11(Mic Mute LED),是补丁量最大的单驱动。

AMD ACP yc DMI quirk 密集新增 7 款机型:MSI Raider A18 HX A7VHG、Xiaomi RedmiBook 16 2025、HP Victus 16-e1xxx、Lenovo Legion 7 15ASH11、Acer Aspire AG14-22P、MSI Crosshair A16 HX D7WFKG、ASUS EXPERTBOOK PM1403CDA。

TI tas2562 收到 7 个 volume 修复补丁(Mark Brown + Haidar Lee),系统性修正 DVC 系数写入顺序、lookup table 错误条目、默认数字音量、event 生成、写入校验。TI tas2781 两项关键修复:ACPI reference handling(error path 二次释放 ACPI device reference + acpi_get_first_physical_node 返回 NULL 未校验)和 SINEGAIN2 寄存器用错 sin_gn[]/sin_gn2[] 字段致第二 pilot tone gain 校准写错地址。

二、安全修复分析

安全类补丁集中在 USB 音频、ALSA 核心、ASoC codec 的错误路径。

高危(建议优先追踪):

USB 音频 OOB/UAF 占高危修复的绝大部分,说明 USB 音频核心路径的内存安全是此期间安全热点。Type II URB OOB 和 fill_max DMA 越界影响所有使用对应格式/标志的 USB 音频设备;ALSA timer IFLG_DEAD UAF 和 seq 除零影响所有使用 ALSA timer/seq 的驱动和用户态程序;pcm linked drain UAF 影响所有使用 linked stream drain 的应用。

模块
问题
说明
usb-audio
Type II inbound URB OOB 写
data_ep_set_params
 buffer_size 用 pre-increment packet count,Type II 端点 buffer 少一个 packet
usb-audio
fill_max DMA buffer 越界
fill_max
 置位时 maxsize 未提升到 curpacksize,DMA 写破坏 kernel heap
usb-audio
implicit-feedback frame 未 clamp
同步包经 stride 缩放后超 maxframesize,playback 队列驱动越界传输
usb-audio
akai output OOB 写
snd_usbmidi_akai_output()
 越界写
usb-audio
RME Digiface 栈信息泄漏
status ioctl 未初始化字段泄漏栈内容
usb-audio
ump_to_endpoint
 UAF
endpoint 查找与释放无序列化
ALSA ump
out_cvts
 double free
rawmidi error 路径重复释放
ALSA timer
IFLG_DEAD
 UAF
close 置 dead 后不清除,seq reopen 命中已 dead 实例释放仍挂链对象
ALSA seq
initialize_timer
 除零
用户可控 resolution=2^63 使 r*freq wrap 为 0
ALSA pcm
linked drain on-stack UAF
unlink 未唤醒 sleep 队列,drainer 带挂在已释放流上的 wait entry 返回
usx2y
hwdep mmap fault offset 未 bound
mmap fault offset 越界
us144mkii
capture URB resubmit 未 re-anchor
resubmission 未重新 anchor 致 URB 脱锚
FCP
fcp_meter_ctl_get
 OOB 写
meter control get 越界写
6fire
probe error path UAF
probe 错误路径释放仍引用对象
hda/tas2781
ACPI reference 失衡
error path 二次释放 ACPI device reference + NULL physical node 未校验
SDCA
Control Range 不足
header 要求的 Control Range 未校验
SDCA
UMP message size 不 robust
message size 检查可被绕过
SDCA
FDL 路径 firmware 未释放
FDL 错误路径 firmware 泄漏
SDCA
devm_acpi_table_put
 指针错
传入错误指针致 devm 释放错对象
lpass-macro
enum kcontrol 越界
tx/wsa macro enum kcontrol 访问越界

三、新功能分析

1. ASoC: amd yc DMI quirk 扩展 — 新增 7 款机型(MSI Raider A18 HX、Xiaomi RedmiBook 16 2025、HP Victus 16-e1xxx、Lenovo Legion 7 15ASH11、Acer Aspire AG14-22P、MSI Crosshair A16 HX、ASUS EXPERTBOOK PM1403CDA)

2. ASoC: Intel soc-acpi NVL match — 新增 sof_rt5682 entry 到 NVL match table

3. ALSA: usb-audio 新设备 quirk — 共 7 款:

Logitech PRO X 2 LIGHTSPEED(MIXER_GET_CUR_BROKEN)C-Media CM6206(GET_SAMPLE_RATE)Corsair Virtuoso later revisionJKY Technology Q2A(iface reset + delay)Generic USB Headphone(iface reset + delay)Razer Barracuda X 2.4(dB map)M-Audio Fast Track Ultra(sticky mixer 回归修复)

4. ASoC: rt5645 Kconfig user selectable — rt5645 Kconfig symbol 改为用户可选

5. ASoC: component fixup_controls 回调 — ASoC core 新增 component 级 fixup_controls 回调,供 SDCA IRQ 注册时序使用

四、关键贡献者

排名
贡献者
提交数
主要方向
1
Charles Keepax
11
SDCA jack 检测竞态治理 + SDCA bug fix
2
Mark Brown
10
ASoC fix 分支合入 + tas2562 volume 修复
3
Baul Lee
8
USB 音频/ALSA 核心 OOB/UAF 安全修复
4
Peter Ujfalusi
6
SOF ipc4/topology 修复 + cs35l41/45/cs4265 reg_defaults 排序
5
Zhang Heng
5
AMD yc DMI quirk + HDA Realtek quirk
6
Takashi Iwai
4
USB 音频 mixer 回归 + 6fire UAF + 合入协调
7
Norbert Szetei
3
ALSA timer/seq 核心修复 + pcm linked drain
8
Haidar Lee
2
tas2562 DVC 系数 + lookup table
9
Dawid Wróbel
2
lpass-wsa/tx-macro enum kcontrol
10
Bard Liao
2
SoundWire PCMSyCM reset + SOF topology

企业分布:Cirrus Logic(11)、Intel(8)、xbow(8)、SUSE(4)、Kylin(6)、NXP(2)、Realtek(1)、TI(9,含 tas2562/tas2781)、Google(2)、Vivo(2)、Uniontech(2)。

五、驱动更新

USB 音频:Type II URB OOB、fill_max DMA 越界、implicit-feedback frame clamp、akai output OOB、RME Digiface 栈泄漏、ump_to_endpoint UAF、out_cvts double free、usx2y hwdep mmap bound、us144mkii re-anchor、FCP OOB、6fire probe UAF、M-Audio Fast Track Ultra sticky mixer 回归、新设备 quirk 7 款

ALSA 核心:timer IFLG_DEAD UAF、seq initialize_timer 除零、pcm linked drain on-stack UAF、ump double free

HDA Realtek:9 款机型 quirk(HP Dragonfly Folio G3、HP Victus 16-e0xxx mute LED、HP Laptop 14s-dr1xxx mute LED、HP Pavilion AIO 27-ca1xxx、Infinix INBOOK X3 Slim、TongFang X6SP45xU、Acer Nitro 5 AN515-46 headset mic、Legion 7 15ASH11 Mic Mute LED)

HDA tas2781:ACPI reference handling 修复、SINEGAIN2 校准数据字段修正

AMD ACP yc:7 款 DMI quirk 新增

ASoC SDCA:jack 检测竞态治理(fixup_controls 回调 + IRQ 注册时序 + devm 生命周期)+ 4 个 bug fix(Control Range、UMP size、FDL firmware、devm 指针)

TI tas2562:DVC 系数写入顺序、lookup table 错误条目、默认数字音量、event 生成、写入校验、volume setting 综合 fix

TI tas2781:ACPI reference handling、SINEGAIN2 校准字段

Cirrus cs35l41/45/cs4265:reg_defaults 表排序(非功能性,配合 regmap 优化)

NXP fsl_asrc/easrc:m2m_init 错误路径 cleanup 改 goto 链

SOF:ipc4-pcm IPC timeout 后继续 pipeline trigger、sof-audio widget setup 错误路径、topology acpi mach 使用、ipc4-topology copier IPC payload refresh

SoundWire Intel:hda_sdw_bpt_close 重置 PCMSyCM 寄存器

其他:rt722 reset codec 修复 warm reboot 后异常音、max98090/max98095 mclk IS_ERR 校验、sophgo cv1800b adc volume return 1、lx6464es 16-bit period byte count、rt5645 Kconfig user selectable、lpass-tx/wsa-macro enum kcontrol 越界

六、子系统热点

子系统
补丁数
热度原因
USB Audio
17
OOB/UAF/栈泄漏密集安全修复 + 新设备 quirk
ASoC SDCA
11
jack 检测竞态系统性治理 + bug fix
HDA Realtek
9
机器码 quirk 密集修复,覆盖 8+ 款机型
AMD ACP yc
7
DMI quirk 新增 7 款机型
TI tas2562
7
volume 控制系统性修正
ALSA 核心
4
timer UAF + seq 除零 + pcm drain UAF + ump double free
SOF
4
ipc4-pcm/sof-audio/topology 错误路径与状态修复
Cirrus cs35l41/45
4
reg_defaults 排序
NXP fsl_asrc
3
m2m_init 错误路径 cleanup

核心 ⇄ 驱动联动小结

USB 音频核心路径的 OOB/UAF 修复是基础设施级安全加固,Type II URB 和 fill_max DMA 越界影响所有使用对应格式/标志的 USB 音频设备,implicit-feedback frame clamp 影响所有异步 playback。ALSA timer IFLG_DEAD UAF 和 seq 除零影响所有使用 ALSA timer/seq 的驱动和用户态程序;pcm linked drain UAF 影响所有使用 linked stream drain 的应用。ASoC SDCA jack 检测竞态治理是 Cirrus + ASoC core 联动:DAPM 图创建时序与 ALSA control 创建时序的鸿沟是根因,需 core 侧新增 fixup_controls 回调 + SDCA 侧 IRQ 注册推迟,两边修复形成闭环。HDA tas2781 的 ACPI reference 失衡和 SINEGAIN2 字段错误是 Kylin 维护者在 tas2781 智能功放路径上的闭环修复。TI tas2562 的 7 个 volume 修复是 TI + ASoC maintainer 联动的系统性修正,覆盖 DVC 系数写入顺序、lookup table、event 生成、写入校验多个层面。

最新文章

随机文章