报告周期: 2026年6月8日 - 2026年6月15日(第24周)数据来源: Linux内核邮件列表 (lore.kernel.org/linux-usb/)
执行摘要
在2026年第24周,Linux内核USB子系统共提交了约70个补丁和讨论线程。本周的补丁活动主要集中在以下几个方面:
新硬件支持:新增多个USB控制器和外设设备的支持
稳定性修复:修复了多个内存泄漏、引用计数问题和空指针解引用bug
功能增强:XHCI子系统迎来重要功能更新,USB gadget框架得到扩展
代码质量改进:持续的代码清理和错误处理优化
本周有两个重要的合并请求(GIT PULL):
USB driver fixes for 7.1-final:针对7.1版本最终阶段的驱动修复
USB serial updates for 7.2-rc1:为7.2-rc1准备的串口设备更新
USB4/Thunderbolt changes for v7.2 merge window:为7.2合并窗口准备的USB4/Thunderbolt变更
一、新硬件支持
1.1 ITE IT885x USB PD控制器
补丁系列: [PATCH 0/2] Add support for ITE IT885x USB PD controller
台湾联阳半导体(ITE)的IT885x系列USB Power Delivery控制器的首次支持。该补丁系列包括:
设备树绑定文档
新的Type-C PD控制器驱动程序
此支持使得基于ITE IT885x芯片的USB-C端口能够实现PD协议协商和电源管理功能。
1.2 CoreChips SR9900以太网适配器
补丁: [PATCH] r8152: add vendor/device ID for CoreChips SR9900
为r8152驱动程序添加CoreChips SR9900 USB以太网适配器的厂商/设备ID支持。SR9900是一款USB转以太网控制器,常用于嵌入式系统和网络适配器。
1.3 Telit Cinterion FE990D50模块
补丁: [PATCH] USB: serial: option: add Telit Cinterion FE990D50 compositions
为option串口驱动添加Telit Cinterion FE990D50 LTE模块的设备组合支持。FE990D50是一款支持多频段LTE的无线通信模块。
1.4 TPS6699x兼容支持
补丁: [PATCH] dt-bindings: usb: ti,tps6598x: add TPS6699x compatible
为TI TPS6598x USB Type-C和PD控制器驱动添加TPS6699x的兼容性字符串。TPS6699x是德州仪器的USB Type-C端口控制器系列。
1.5 Uniden BC125AT扫描仪
补丁: [RESEND PATCH] usb: cdc_acm: Add quirk for Uniden BC125AT scanner
为cdc_acm驱动添加Uniden BC125AT无线电扫描仪的特殊quirk处理,确保该设备能够正确工作。
二、Bug修复
2.1 内存泄漏修复
f_uac2内存泄漏
补丁: [PATCH 1/2] usb: gadget: f_uac2: fix memory leak in UAC2_RATE_ATTRIBUTE store
修复USB Audio Class 2.0 gadget驱动中UAC2_RATE_ATTRIBUTE存储操作导致的内存泄漏问题。
XHCI ring sg table pages泄漏
补丁: [RESEND PATCH] xhci: sideband: fix ring sg table pages leak
修复XHCI侧带通道中scatter-gather表页面的泄漏问题,这对于DMA操作的正确性至关重要。
2.2 引用计数泄漏修复
本周发现了多处引用计数泄漏问题,这些问题可能导致设备无法正确释放:
[PATCH] usb: xhci: fix refcount leak in xhci_port_bw_show()修复XHCI端口带宽显示函数中的引用计数泄漏
[PATCH] usb: hub: fix refcount leak in usb_new_device()修复USB集线器在新建设备时的引用计数泄漏
[PATCH] usb: misc: fix refcount leak in get_1284_register()修复USB杂项驱动中获取1284寄存器时的引用计数泄漏
[PATCH] USB: misc: uss720: fix refcount leak in submit_async_request()修复uss720驱动中异步请求提交时的引用计数泄漏
[PATCH] usb: dwc3: meson-g12a: fix refcount leak in dwc3_meson_g12a_resume()修复DWC3 Meson G12A平台驱动恢复过程中的引用计数泄漏
[PATCH] usb: chipidea: tegra: fix refcount leak in tegra_usb_reset_controller()修复ChipIdea Tegra平台USB复位控制器中的引用计数泄漏
2.3 空指针和越界访问修复
vudc NULL指针解引用
补丁: [PATCH] usbip: vudc: fix NULL pointer dereference in vep_dequeue
修复USBIP虚拟UDC驱动中vep_dequeue函数的空指针解引用问题,该问题可能导致系统崩溃。
KASAN检测到的越界读取
补丁: kalmia_rx_fixup(): possible out of bounds read on a short RX frame
修复kalmia驱动在处理短接收帧时可能的越界读取问题。
KASAN slab-out-of-bounds
报告: [BUG] KASAN: slab-out-of-bounds in select_usb_power_delivery_show
KASAN检测到select_usb_power_delivery_show函数中的slab越界访问问题,需要进一步修复。
chaoskey use-after-free
补丁: [PATCH] USB: chaoskey: Fix slab-use-after-free in chaoskey_release()
修复chaoskey随机数生成器驱动中的use-after-free漏洞。
2.4 并发和锁问题修复
XHCI原子上下文睡眠
补丁: [PATCH v2] usb: xhci: Fix sleep in atomic context in xhci_free_streams()
修复XHCI驱动在xhci_free_streams()函数中原子上下文中睡眠的问题。这是一个严重的并发bug,可能导致系统死锁。
mutex转换为guard
补丁: [PATCH] usb: serial: replacing mutex_lock to guard(mutex)
将USB串口驱动中的mutex_lock替换为guard(mutex)宏,这是内核中推广的新型资源管理模式,能够自动处理锁的获取和释放,减少遗漏解锁的风险。
2.5 平台特定问题修复
AMD Raphael/Granite Ridge xHCI恢复问题
报告: xhci_hcd: AMD Raphael/Granite Ridge USB 2.0 xHCI [1022:15b8] dies on resume from suspend
AMD Raphael/Granite Ridge平台的USB 2.0 xHCI控制器在从挂起状态恢复后失效的问题。这是一个影响特定AMD平台的严重电源管理问题。
RK3568/RK3566挂起冻结
补丁: [PATCH 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566
修复Rockchip RK3568/RK3566平台上设备挂起时的冻结问题。
2.6 其他重要修复
f_fs fence清理
补丁: [PATCH] usb: gadget: f_fs: Fix fence cleanup in ffs_dmabuf_transfer() error paths
修复USB gadget f_fs驱动中ffs_dmabuf_transfer()错误路径上的fence清理问题,这对DMA缓冲区传输的正确性很重要。
USB gadget reset_work初始化
补丁: [PATCH] usb: gadget: f_fs: initialize reset_work at allocation time
将USB gadget f_fs驱动的reset_work在分配时进行初始化,避免未初始化工作队列的使用。
u_audio捕获端点清理
补丁: [PATCH] usb: gadget: u_audio: clean up capture endpoint on feedback failure
在反馈失败时正确清理USB音频gadget的捕获端点。
Type-C连接器分离
补丁: [PATCH] usb: core: port: Deattach Type-C connector on component unbind
在组件解绑时正确分离Type-C连接器,确保热插拔场景下的正确行为。
Thunderbolt流映射大小
补丁: [PATCH tb-next] thunderbolt: stream: unmap buffers with mapped size
修复Thunderbolt流中使用正确的映射大小来unmap缓冲区的问题。
Thunderbolt下游端口重置
补丁: [PATCH v4] thunderbolt: Assert downstream port reset on shutdown
在关机时断言下游端口重置,确保Thunderbolt设备的正确关闭。
HID hiddev生命周期跟踪
补丁: [PATCH] HID: hiddev: Use kref to track struct hiddev lifetime
使用kref机制跟踪HID设备结构的生命周期,改善资源管理。
PIDFF效果类型修复
补丁: [PATCH] HID: pidff: Use correct effect type in effect update
修复PIDFF(物理接口设备力反馈)驱动中效果更新时使用正确效果类型的问题。
XHCI等待命令完成限制
补丁: [PATCH] usb: xhci: bound wait command completion to avoid kdump deadlock
限制XHCI等待命令完成的时间,避免在kdump场景下发生死锁。
USB/UAS配置启用
补丁: [PATCH] arm64: defconfig: Enable USB_UAS in arm64 configuration
在arm64默认配置中启用USB UAS(USB Attached SCSI)支持,提升USB存储性能。
DWC3 gadget断开处理
补丁: [PATCH] usb: dwc3: run gadget disconnect from sleepable suspend context
从可睡眠的挂起上下文中运行gadget断开连接,改善电源管理行为。
UCSI调试条目管理
补丁: [PATCH] usb: typec: ucsi: unregister debugfs entries on teardown
在UCSI驱动拆卸时正确注销debugfs条目,防止资源泄漏。
USBIP sysfs属性清理
补丁系列: [PATCH 0/2] usbip: Cleanup of sysfs attributes
清理USBIP驱动的sysfs属性,提高代码质量和一致性。
Digi Acceleport注册修复
补丁系列: [PATCH 00/11] USB: serial: digi_acceleport: registration fix and cleanups
修复Digi Acceleport串口设备的注册问题并进行代码清理。
TI io_ti错误处理统一
补丁: [PATCH] USB: serial: io_ti: Use common error handling code in do_download_mode()
统一TI串口驱动下载模式中的错误处理代码。
USB网络设备抢占警告修复
补丁: [PATCH 5.10] usbnet: Fix using smp_processor_id() in preemptible code warnings
修复usbnet驱动在可抢占代码中使用smp_processor_id()导致的警告。
USB gadget ncm生命周期修复
补丁: [PATCH 6.6.y] usb: gadget: f_ncm: Fix net_device lifecycle with device_move补丁: [PATCH 6.1.y 1/2] usb: gadget: f_ncm: Fix net_device lifecycle with device_move
修复USB gadget NCM驱动中net_device在使用device_move时的生命周期管理问题,这些补丁被反向移植到稳定内核分支。
三、功能增强
3.1 XHCI新功能系列
补丁系列: [PATCH 00/15] xhci features for usb-next
由Mathias Nyman提交的包含15个补丁的XHCI功能增强系列,针对usb-next分支。这是本周最重要的功能更新之一,虽然具体细节需要查看完整补丁内容,但通常此类系列会包括:
新的XHCI控制器特性支持
性能优化
电源管理改进
错误处理增强
3.2 USB Gadget f_fs代理端点和ZLP支持
补丁系列: [PATCH 0/3] usb: gadget: f_fs: Add R/W proxy EPs and ZLP support
由Neill Kapron提交,经Greg KH审核。该系列为USB gadget功能文件系统(f_fs)驱动添加了:
这些功能增强了f_fs驱动的灵活性,使其能够更好地模拟复杂的USB设备行为。
3.3 Battery Status AMS支持
补丁系列: [PATCH v3 0/2] Add support for Battery Status AMS
添加对Battery Status Alternate Mode Support(AMS)的支持,这使得USB Type-C设备能够更好地报告和管理电池状态信息。
3.4 UCSI重复altmode过滤
补丁系列: [PATCH v6 0/3] usb: typec: ucsi: Filter duplicate altmodes from buggy firmware
第6版补丁系列,用于过滤来自有缺陷固件的重复altmode报告。这解决了某些UCSI实现中固件报告重复备用模式的问题。
3.5 基于线缆能力的altmode限制
补丁系列: [PATCH v1 0/3] Restrict alternate modes based on cable capabilities
根据线缆能力限制备用模式的启用,确保只有在线缆支持的情况下才启用特定的备用模式(如DisplayPort Alt Mode)。
3.6 Huawei Gaokun UCSI模式切换支持
补丁: [PATCH] usb: ucsi: huawei_gaokun: support mode switching
为华为Gaokun UCSI驱动添加模式切换支持,允许在不同操作模式之间切换。
3.7 Apple MFi快充驱动转换
补丁: [PATCH] usb: apple-mfi-fastcharge: Convert to devm resources
将Apple MFi快速充电驱动转换为使用devm资源管理框架,简化驱动代码并改善资源管理。
3.8 DRM IRQ_HPD事件处理
补丁系列: [PATCH v4 0/8] drm: handle IRQ_HPD events correctly
虽然主要属于DRM子系统,但这个8个补丁的系列与USB Type-C DisplayPort Alt Mode相关,正确处理IRQ_HPD(热插拔检测)事件对于USB-C视频输出功能至关重要。
3.9 MediaTek M.2 E-key槽支持
补丁系列: [PATCH v2 00/16] arm64: mediatek: Add M.2 E-key slot on Chromebooks
这个16个补丁的系列为MediaTek平台的Chromebook添加M.2 E-key插槽支持,其中可能包括USB相关的WiFi/蓝牙模块支持。
四、代码清理和优化
4.1 注释修正
补丁: [PATCH] usb: gadget: nokia: correct CONFIG_USB_GADGET_DEBUG_FILES macro name in comment
修正Nokia USB gadget驱动注释中CONFIG_USB_GADGET_DEBUG_FILES宏的名称。
4.2 DWC3 PHY重新初始化quirk
补丁系列: [PATCH 0/3] usb: dwc3: add snps,reinit-phy-on-resume quirk for USB2 PHY power loss during S3
为DWC3驱动添加snps,reinit-phy-on-resume quirk,用于处理S3睡眠期间USB2 PHY电源丢失的情况,需要在恢复时重新初始化PHY。
五、合并请求汇总
5.1 USB driver fixes for 7.1-final
提交者: Greg Kroah-Hartman目标版本: Linux 7.1最终版本
此合并请求包含了针对7.1版本发布前的关键驱动修复,通常包括:
5.2 USB serial updates for 7.2-rc1
提交者: Johan Hovold目标版本: Linux 7.2-rc1
为7.2版本第一个候选版本准备的USB串口驱动更新,包括:
5.3 USB4/Thunderbolt changes for v7.2 merge window
目标版本: Linux 7.2合并窗口
为7.2版本合并窗口准备的USB4和Thunderbolt子系统变更,包括:
六、趋势分析
6.1 关注领域分布
| 类别 | 补丁数量 | 占比 |
|---|
| Bug修复 | ~35 | 50% |
| 新硬件支持 | ~8 | 11% |
| 功能增强 | ~20 | 29% |
| 代码清理 | ~7 | 10% |
6.2 主要观察
稳定性是首要任务:超过半数的补丁用于修复各种bug,特别是内存泄漏和引用计数问题,这表明社区持续重视内核稳定性。
引用计数泄漏集中发现:本周发现了6处引用计数泄漏问题,分布在不同的USB子系统中,这可能表明最近进行了系统的代码审查或使用了新的静态分析工具。
Type-C/USB-PD持续发展:多个补丁涉及USB Type-C和Power Delivery功能,包括新控制器支持、altmode管理和电池状态支持,反映了USB-C技术在生态系统中的重要性持续增长。
XHCI持续演进:15个补丁的XHCI功能系列表明主机控制器驱动仍在积极开发中。
Gadget框架扩展:f_fs驱动的代理端点和ZLP支持显示USB gadget框架的功能在不断扩展,满足更多样化的设备模拟需求。
现代C语言特性的采用:mutex到guard(mutex)的转换反映了内核社区采用更安全的资源管理模式。
七、附录:完整补丁列表
以下是本周linux-usb邮件列表中所有补丁和讨论的完整列表(按日期倒序):
2026-06-15
[PATCH] usb: typec: ucsi: gaokun: unwind notifier on UCSI register failure
kalmia_rx_fixup(): possible out of bounds read on a short RX frame
[PATCH 00/15] xhci features for usb-next
[PATCH 0/2] Add support for ITE IT885x USB PD controller
[RESEND PATCH] usb: cdc_acm: Add quirk for Uniden BC125AT scanner
[PATCH 0/3] usb: gadget: f_fs: Add R/W proxy EPs and ZLP support
[PATCH] usb: serial: replacing mutex_lock to guard(mutex)
2026-06-14
[BUG] KASAN: slab-out-of-bounds in select_usb_power_delivery_show
xhci_hcd: AMD Raphael/Granite Ridge USB 2.0 xHCI [1022:15b8] dies on resume from suspend
[PATCH 1/2] usb: gadget: f_uac2: fix memory leak in UAC2_RATE_ATTRIBUTE store
[PATCH] usb: apple-mfi-fastcharge: Convert to devm resources
2026-06-13
[PATCH] usb: gadget: nokia: correct CONFIG_USB_GADGET_DEBUG_FILES macro name in comment
[PATCH] dt-bindings: usb: ti,tps6598x: add TPS6699x compatible
[PATCH] r8152: add vendor/device ID for CoreChips SR9900
[PATCH v2 00/16] arm64: mediatek: Add M.2 E-key slot on Chromebooks
2026-06-12
[PATCH] usb: gadget: f_fs: Fix fence cleanup in ffs_dmabuf_transfer() error paths
[PATCH v3 0/2] Add support for Battery Status AMS
[PATCH v4 0/8] drm: handle IRQ_HPD events correctly
[PATCH] usbip: vudc: fix NULL pointer dereference in vep_dequeue
[GIT PULL] USB driver fixes for 7.1-final
[GIT PULL] USB serial updates for 7.2-rc1
[PATCH v2] usb: xhci: Fix sleep in atomic context in xhci_free_streams()
[PATCH] USB: serial: option: add Telit Cinterion FE990D50 compositions
[PATCH] usb: xhci: Fix sleep in atomic context in xhci_free_streams()
[PATCH 2/2] arm64: dts: rockchip: Fix devices suspend freeze on RK3568/RK3566
[PATCH] usb: ucsi: huawei_gaokun: support mode switching
[PATCH] usb: xhci: fix refcount leak in xhci_port_bw_show()
[PATCH] usb: hub: fix refcount leak in usb_new_device()
[GIT PULL] USB4/Thunderbolt changes for v7.2 merge window
[PATCH] usb: dwc3: Update nominal max votes for qcom usb
[PATCH v6 0/3] usb: typec: ucsi: Filter duplicate altmodes from buggy firmware
[PATCH] usb: dwc3: run gadget disconnect from sleepable suspend context
2026-06-11
[PATCH] usb: typec: ucsi: unregister debugfs entries on teardown
[PATCH 0/2] usbip: Cleanup of sysfs attributes
[PATCH v1 0/3] Restrict alternate modes based on cable capabilities
[PATCH 6.6.y 1/2] usb: gadget: f_ncm: Fix net_device lifecycle with device_move
[PATCH 6.1.y 1/2] usb: gadget: f_ncm: Fix net_device lifecycle with device_move
[RESEND PATCH] xhci: sideband: fix ring sg table pages leak
[PATCH] usb: misc: fix refcount leak in get_1284_register()
[PATCH] USB: misc: uss720: fix refcount leak in submit_async_request()
[PATCH] usb: dwc3: meson-g12a: fix refcount leak in dwc3_meson_g12a_resume()
[PATCH] usb: chipidea: tegra: fix refcount leak in tegra_usb_reset_controller()
[PATCH] HID: hiddev: Use kref to track struct hiddev lifetime
[PATCH 0/3] usb: dwc3: add snps,reinit-phy-on-resume quirk for USB2 PHY power loss during S3
[PATCH] usb: gadget: f_fs: initialize reset_work at allocation time
[PATCH] arm64: defconfig: Enable USB_UAS in arm64 configuration
[PATCH] usb: gadget: u_audio: clean up capture endpoint on feedback failure
[PATCH] usb: core: port: Deattach Type-C connector on component unbind
[PATCH tb-next] thunderbolt: stream: unmap buffers with mapped size
[PATCH v4] thunderbolt: Assert downstream port reset on shutdown
[PATCH] USB: serial: io_ti: Use common error handling code in do_download_mode()
[PATCH 5.10] usbnet: Fix using smp_processor_id() in preemptible code warnings
2026-06-10
[PATCH 6.6.y] usb: gadget: f_ncm: Fix net_device lifecycle with device_move
[PATCH] HID: pidff: Use correct effect type in effect update
[PATCH] usb: xhci: bound wait command completion to avoid kdump deadlock
[PATCH] USB: chaoskey: Fix slab-use-after-free in chaoskey_release()
[PATCH 00/11] USB: serial: digi_acceleport: registration fix and cleanups
[PATCH] usb: xhci: Use common error handling code in two functions
[PATCH] usb: cdnsp: Use common error handling code in cdnsp_segment_alloc()
[Bug 221633] New: thunderbolt: hard system freeze from repeated DP tunnel activation failures
[GIT PULL] USB serial fixes for 7.1-rc8