在即将发布的Linux 6.13稳定版中,一项由微软工程师贡献的核心更改引发了广泛关注。这项未经适当授权的更改,涉及到了Linux x86_64代码,导致部分用户在使用过程中遇到了问题,从而使得该功能被紧急禁用,以避免影响下周日的稳定版发布。

让我们回顾去年11月,Linux 6.13合并窗口期间,一位微软工程师提出了一项改进内核模块的补丁。该补丁的本意是通过大块只读执行(ROX)页面分配可执行内核,以降低指令TLB压力并提升系统性能。
然而,问题出现了。在一些启用了控制流完整性(CFI)设置的系统中,这段代码导致英特尔笔记本在从休眠状态恢复时出现故障。
关键功能被紧急禁用
英特尔工程师Peter Zijlstra最近提交了一项补丁,目的在于禁用EXECMEM_ROX支持。他在提交给Linus Torvalds的x86/urgent拉取请求中解释了这一决定:“x86: 禁用 EXECMEM_ROX 支持。由于module_writable_address()的混乱,alternative.c变得难以理解,还伴随着一些CFI变体的崩溃和烧毁问题。Mike一直在努力修复这些问题,但目前来看,这些补丁还不成熟。”
该补丁实际上保留了EXECMEM_ROX代码,但通过Kconfig的简单修改,防止了它在Linux x86_64内核中的构建。
值得注意的是,这一更改甚至未得到任何x86/x86_64维护者的签字确认,就已经被合并到主线Linux内核中。AMD的资深Linux开发者Borislav Petkov对此表示:“我真的很欣赏它在没有x86维护者签字的情况下就被合并,导致了很多问题,却仍被保留。”
Linux 6.13稳定版预计将在下周日(1月19日)发布,幸运的是,这一变更发生在稳定版发布前。我们都希望EXECMEM_ROX在下一个Linux v6.14内核周期中能够得到进一步的完善。
© 版权声明
本文的所有权归原作者所有,未经授权禁止转载和复制。如您侵犯了您的权益,请及时联系我们,本站将立即删除。谢谢您的理解与支持。
相关文章
暂无评论...