0/2 已展开

LLM 分析

Linux stable 6.18.44:跨子系统稳定补丁合集

系列概况

  • 标题: Linux 6.18.44
  • 作者: Greg Kroah-Hartman(stable 分支 maintainer)
  • 版本: 6.18.44(6.18.y stable 队列)
  • 规模: 跨多子系统的稳定补丁合集(announcement 体裁,diffstat 摘要)
  • 修改文件: 涵盖 Documentation(hwmon/ina2xx.rst、virt/kvm/api.rst)、KVM(arm64、s390、x86 sv/av/av)、powerpc boot、bluetooth(btintel/btmtk/btusb)、ATA、gpio、hwmon、net、block(ublk)、DMA 等数十个文件
  • 代码统计: diffstat 摘要以 +/- 行数 形式列出;其中 s390/kvm/pci.c 改动达 78 行,是本批最大单文件变更
  • Message-ID: 2026080951-unquote-sarcastic-548a@gregkh(announcement 主体);reply 2026080951-etching-strut-6914@gregkh
  • 完整性: announcement 邮件只罗列 diffstat 与分支仓库 URL,未附完整 patch 文本;需到 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitlinux-6.18.y 分支取实际提交

渠道说明:thread_key 标注 sched,但 thread 内容是 stable 发布公告,与 scheduler 子系统没有直接关系,仅因作者是同一 Greg KH 而归入此类。

补丁目的

  • 推送 6.18.y stable 队列的 6.18.44 点版本,强制所有 6.18 用户升级。
  • 修复一批积累到 stable 门槛的 bug,覆盖:
    • hwmon:为 ina2xx 驱动补充 INA234(TI 新型号)文档。
    • KVM (arm64):mmu/arm.c 调整(25 行),可能涉及 MTE 与 guest_memfd 的兼容语义。
    • KVM (s390):pci 子模块 78 行大改,重构 MMIO 与 zPCI 接口。
    • KVM (x86)avic.cvmx_ops.h 各 8 行,AVIC 刷新与 VMCS 操作修正。
    • 蓝牙:btmtk(50 行)、btusb(30 行)、btintel(3 行)Intel/MediaTek 固件路径修正。
    • ATA / GPIO / DMA / accel(qaic) / ublk 等驱动级小修复。
  • 同步更新 Documentation/virt/kvm/api.rst:明确 guest_memfd 与 MTE 不兼容。

关键实现

Documentation/hwmon/ina2xx.rst

+ * Texas Instruments INA234
+   Prefix: 'ina234'
+   Addresses: I2C 0x40 - 0x43
+   Datasheet: Publicly available at TI website

- INA230 and INA231 are high or low side ...
+ INA230, INA231, and INA234 are high or low side ...

把新芯片并入原有家族描述;I2C 地址与前缀 ina234 写入 supported chips 表。

Documentation/virt/kvm/api.rst(关键新增段落)

+ When this capability is enabled all memory in memslots must be mapped as
+ guest_memfd, even though it is an anonymous file, is not supported with MTE.
+ Attempting to create a memslot backed by guest_memfd when the MTE capability
+ is enabled, o[……]

明确两条互斥规则:

  1. 启用某 capability 时,所有 memslot 必须用 guest_memfd
  2. guest_memfd 与 MTE 不能同时启用,否则用户态 KVM_SET_USER_MEMORY_REGION 应返回错误。

arch/s390/kvm/pci.c(78 行)

arch/s390/kvm/pci.c  | 78 ++-
arch/s390/kvm/pci.h  |  2
arch/s390/pci/pci_mmio.c | 1

典型 stable 大改动:可能涉及 zPCI 与 vfio-pci 的 MMIO 注册路径、IRQ 注入、register 状态机修复。结合 pci.h 2 行与 pci_mmio.c 1 行的小改,是接口语义重构。

蓝牙家族(btmtk 50 行 / btusb 30 行)

MediaTek 蓝牙固件下载流程与 Intel 蓝牙诊断模式相关 bug 的累积修复;属于"产品线 bug 收敛",不是架构变化。

类比

6.18.44 就像一次"汽车 4S 店的季度保养包":稳定分支 maintainer 把这一段时间各零部件(hwmon、KVM、蓝牙、ATA 等)发现的小毛病,统一打包成一次小版本升级。车还是那台车(6.18 内核主干),但保养包把所有可召回的小隐患一起修了——用户只需要到 4S 店(运行 git pull 并重新编译/装包)即可,无需自己定位是哪个子系统坏了。

其中 guest_memfd + MTE 的互斥说明则像是"两个安全气囊不能同时启用"的告示——文档里现在明确写"启用 MTE 时请勿挂载 guest_memfd memslot",避免部署时两边都开导致不可预期行为。

ASCII 流程图

+--------------------+        +------------------------+
| 6.18.y 维护队列     | -----> | 收集各子系统的候选修复  |
+--------------------+        +------------------------+
                                       |
                                       v
                          +--------------------------+
                          | maintainer 评估/挑选/backport |
                          +--------------------------+
                                       |
                  +--------------------+--------------------+
                  |                    |                    |
                  v                    v                    v
           +------------+      +-------------+       +---------------+
           | hwmon/INA234|     | KVM arm64 MTE|       | s390 KVM PCI  |
           | docs +   |      | guest_memfd |       | 78 行 MMIO    |
           | driver  |      | 互斥文档       |       | 重构           |
           +------------+      +-------------+       +---------------+
                  \                    |                    /
                   \                   v                   /
                    +--------------------------------------+
                    |   合并 -> tag v6.18.44 -> announcement |
                    +--------------------------------------+
                                       |
                                       v
                          +--------------------------+
                          | "All 6.18 users must upgrade" |
                          +--------------------------+

Highlight:风险与注意点

  1. stable 升级窗口策略:stable 分支只接受已修复的 bug 反向移植(CC: stable),不接受功能或重构;尽管如此,6.18.44 中 s390 KVM PCI 78 行属于相对大改动,生产部署前应在 staging 环境跑一遍 z/VM + KVM 回归
  2. guest_memfd + MTE 互斥:如果上游用户在启用 MTE 的 VM 中尝试用 guest_memfd 内存槽位,KVM 应当显式拒绝(而非 panic)。本批把语义写入 api.rst实现侧需要在 arm64/mmu.c 路径中核对拒绝逻辑是否真的存在——文档与代码需保持一致。
  3. 蓝牙驱动回归风险:MediaTek (btmtk) 与 Intel (btusb) 固件路径修复属于产品线专用,对消费设备影响小,但笔记本/外设厂商需关注自家 SKU 是否受影响。
  4. thread 标签失真:thread_key 标记 sched,但 thread 实际是 stable announcement。后续若以 sched 子系统维度索引,会误把这次发布纳入 scheduler 变更,需在 lore 归档/标签系统中修正。

一句话总结

Linux 6.18.44 是 Greg KH 发布的 6.18.y stable 季度小版本,覆盖 hwmon/KVM/蓝牙/ATA/GPIO 等跨子系统 bug 修复与文档补齐,所有 6.18 用户必须升级;其中 ARM64 KVM guest_memfd 与 MTE 互斥、以及 s390 KVM PCI 大改是值得重点回归的两条线。