三周前对 Linux 内核的一次提交意外破坏了非 x86 CPU 的默认 CPU 安全缓解措施。在今晚发布 Linux 6.9-rc6 之前,今天通过 x86/urgent 发送的代码解决了这一意外的默认破坏问题。
今天合并到 Linux Git 的补丁将重新默认启用非 x86 架构(如 POWER 和 Arm)的 CPU 安全缓解措施。
谷歌的肖恩-克里斯托弗森(Sean Christopherson)在修复该问题的补丁中解释道:
“将 x86 的 CPU_MITIGATIONS 重命名为 CPU_MITIGATIONS,在通用代码中定义它,并强制所有架构(x86 除外)开启它。最近的一次提交指出,如果 SPECULATION_MITIGATIONS=n 则默认关闭缓解措施,这有点忽略了 “cpu_mitigations “是完全通用的,而 SPECULATION_MITIGATIONS 是 x86 专用的。
将 x86 的 SPECULATIVE_MITIGATIONS 重命名为 CPU_MITIGATIONS,而不是同时保留这两个配置,让它选择 CPU_MITIGATIONS。这也将允许 x86 使用旋钮来管理与投机执行无关的缓解措施。
使用另一个 Kconfig 向通用代码传达 CPU_MITIGATIONS 已定义的信息,而不是让 x86 的菜单依赖于通用的 CPU_MITIGATIONS。这样就能为 x86 的所有缓解措施保留一个单一的联系点,而其他架构是否*想*允许在编译时禁用缓解措施还不清楚。”
该补丁是当今 x86 修复拉取请求的一部分。如果内核配置了 CPU_MITIGATIONS=n 以已禁用缓解措施,则现在还可以忽略“mitigations=”内核启动参数。。
今天的 x86 修补程序还包含进一步扩展 AMD Zen 5 处理器型号范围的补丁。
转自 Linux 6.9-rc6 To Fix Accidentally Disabling Mitigations By Default For Non-x86 CPUs – Phoronix