0/2 已展开

LLM 分析

Linux 5.15.217 稳定版发布通告

系列概况

  • 标题:Linux 5.15.217
  • 作者:Greg Kroah-Hartman(stable 维护者)
  • 版本:5.15.217(5.15 长期分支的稳定更新)
  • 规模:跨多子系统的批量 backport
  • 修改文件:Makefile、arch/arm64/boot/dts/nvidia/tegra194.dtsi、arch/openrisc/{include/asm/processor.h,kernel/signal.c}、arch/powerpc/platforms/pseries/{lparcfg,pci}.c、arch/x86/kernel/cpu/resctrl/rdtgroup.c、crypto/ccm.c、drivers/char/tpm/tpm_tis_core.c、drivers/crypto/qce/core.c、drivers/dma-buf/{dma-resv,udmabuf}.c、drivers/dma/dw-edma/*(7 文件共 274 行)、drivers/fpga/dfl-afu-main.c、drivers/gpio/{mvebu,pxa,rockchip,tegra,vf610}.c、drivers/gpu/drm/amd/amdgpu/{amdkfd_gpuvm,gem,ttm,uvd}.c 等
  • 代码统计:单文件 2–90 行不等,最大头是 dw-edma-core.c (90)、dw-edma-pcie.c (83)
  • Message-ID2026082305-overhead-jubilance-ef6e@gregkh(公告),2026082305-train-cornstalk-6951@gregkh(reply 含 diff)
  • 完整性:第一封 body 在 amdgpu 文件列表后被截断,但代表性改动类别已可见,可据此做整体判断

补丁目的

本帖不是 scheduler 讨论,而是 stable 团队例行的 5.15.y 版本回植公告。目的是把上游 mainline 已修复的若干 CVE/回归/驱动 bug 回植到 5.15 长期分支,强制所有 5.15 用户升级。涉及 TPM、DMA、DMA-BUF、DRM/AMDGPU、gpio、powerpc、arm64 dts、openrisc signal 等多个子系统,不是单一功能 patch。

旧流程的问题

  • openrisc:旧 restore_sigcontext 只清 SPR_SR_SM 一位,其它特权 SR 位(监督模式切换相关)可能被用户态通过 sigreturn 篡改,构成提权面。
  • tegra194:5.15 分支旧 DTS 中 timer 节点用 GIC_CPU_MASK_SIMPLE(2) 描述 PPI 中断亲和,但 SoC 实际是 4 核,亲和性失配导致 PPI 不能正确分发到所有 CPU。
  • 其它子系统:原 body 被截断,但都是 upstream 已经修过的回归/驱动缺陷。

新流程

  • openrisc:新增 SPR_SR_USER_MASK = SPR_SR_F | SPR_SR_CY | SPR_SR_OV,restore 时按白名单只让用户态恢复这几个标志,其余强制保留内核旧值。
  • tegra194:DTS timer 节点改为 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW),与 4 核对齐。
  • 其它子系统:dw-edma(274 行,是这次最大的回植块),以及 TPM、DMA-BUF 锁、AMDGPU TTM 路径等回归修复。

Patch 概览

本帖不是 N 段 RFC 系列的"第 i/N 段",而是稳定版整批 backport。按文件归类大致:

  • 核心修复arch/openrisc/*(7 行)、arch/arm64/boot/dts/nvidia/tegra194.dtsi(2 行)
  • 驱动回滚drivers/dma/dw-edma/*(合计 274 行,最大头)、drivers/char/tpm/tpm_tis_core.c(38 行)、drivers/gpio/*(~34 行)、drivers/gpu/drm/amd/amdgpu/*(53 行)
  • DMA-BUFdrivers/dma-buf/dma-resv.c(10 行)、udmabuf.c(21 行)
  • 杂项crypto/ccm.cdrivers/fpga/dfl-afu-main.cdrivers/crypto/qce/core.carch/x86/kernel/cpu/resctrl/rdtgroup.carch/powerpc/platforms/pseries/{lparcfg,pci}.c

关键实现

虽然整帖是批量回植,但有两段改动特别值得拆开看:

openrisc sigreturn 特权位隔离:把"用户允许的 SR 位"做成白名单。注释也同步收紧——从"确保 SM 位被清掉"改为"保留特权位为内核所有,只恢复用户态标志"。本质是把一次控制流的"信任边界"重新划线。

/* arch/openrisc/include/asm/processor.h */
/* SR bits user space may change via sigreturn, the rest stay kernel owned */
#define SPR_SR_USER_MASK (SPR_SR_F | SPR_SR_CY | SPR_SR_OV)
/* arch/openrisc/kernel/signal.c restore_sigcontext() */
unsigned long old_sr = regs->sr;
regs->sr = (old_sr & ~SPR_SR_USER_MASK)
 | (regs->sr & SPR_SR_USER_MASK);

arm64 tegra194 timer GIC mask:单纯把 CPU 数量与硬件实际对齐。看似一行 diff,实际关系到 SMP 启动后 tick device 能否正确收到 PPI14/10。

dw-edma 90+83 行改动:从 diffstat 看是结构体/枚举重构,可能是把 v0 与 v1 两代 eDMA 控制器的公共代码下沉或调整 probe 顺序,需要回 stable 仓库 diff 才能展开,这里只标"高风险点"。

类比

把 5.15.217 想成"长期支援版"的例行体检报告:Greg 是长期照护的家庭医生,每两周给老人(5.15 分支)做一次回访;这次带回的不是新疗法,而是把上游 ICU 抢救过的若干小毛病(TPM、DMA-BUF、openrisc、tegra194 DTS)一次性迁回老人的病历;对用户来说就是"升一下小版本号,把该打的疫苗打完"。

openrisc 那段又像酒店房卡系统:原来只取消"管理员权限"那一位,现在用白名单重新写卡,规定"只允许改这几位房态,其余一律还原为入住前状态",这样客人(用户态)就无法通过退房(sigreturn)伪造特权。

Highlight:风险与注意点

  • 本帖不是 scheduler 专题,却被分到 sched 频道:抓取时若仅按 channel 名分类会误判为调度器补丁。
  • Greg 在 5.15.217 公告里把措辞从往常的"should upgrade"换成了"All users ... must upgrade",暗示此版本包含被认定为 CVE 风险的修复,必须升级。
  • 用户若只跑 5.15.216 而不升 217,将漏掉 openrisc sigreturn 特权位隔离修复(罕见架构但仍属安全类)。
  • drivers/dma/dw-edma/dw-edma-core.c 90 行 + dw-edma-pcie.c 83 行改动相对较大,应重点核对 PCIe 控制器枚举路径是否回归。
  • 公告 body 被截断意味着无法看到 crypto/ccm.cpowerpc/lparcfg.cresctrl/rdtgroup.c 等文件的具体 hunk;如要复盘须直连 stable 仓库的 tag commit。

版本变化

本帖只覆盖 5.15.216 → 5.15.217 单次跃迁;上一版本由 Greg 以相同方式发布(5.15.216)。属于"小步快跑、每两周一次"的稳定版节奏,没有 RFC 草案式的多版本演进。

一句话总结

5.15.217 是一次跨多子系统的稳定版安全/回归批量回植通告,对所有 5.15 用户都是必须升级的小版本号;最值得注意的修复是 openrisc sigreturn 中特权 SR 位隔离与 tegra194 DTS 的 4 核 GIC mask,外加 dw-edma 大块回滚需重点回归验证。

+-----------------------+       +-------------------------+
| upstream linux.git |       | stable/linux-stable.git |
| (mainline + -rc)      |       | branch: linux-5.15.y    |
+----------+------------+       +-----------+-------------+
           |                                  ^
           | cherry-pick CVE / regression      | 5.15.217 tag
           | fixes from mainline              | (SUBLEVEL 216->217)
           v                                  |
+----------+----------------------------------++--------+
| linux-stable maintainers (Greg KH + team)            |
| - review upstream cherry-picks                       |
| - build test on arm64/x86/ppc/openrisc/tegra194 ... |
| - assemble release announcement                      |
+----------------------+-------------------------------+
 |
                       v
              +--------+---------+
              | announce on LKML |
              | (this thread)    |
              +------------------+
                       |
                       v
              +--------+---------+
              | downstream users |
              | must upgrade to  |
              | 5.15.217         |
              +------------------+