一个月前,明尼苏达大学被禁止为Linux内核做贡献,因为该大学的研究人员被发现试图通过新的补丁故意向内核提交错误,而使这个过程作为一篇有问题的研究论文的一部分这种不诚实甚至恶意行为而引发轩然大波。近期Linux内核开发者终于完成了对所有来自UMN.edu补丁的审查,以解决合并到内核中的问题,同时也清理/修复了他们有问题的补丁。
Greg Kroah-Hartman在周四公布了5.13-rc3的char/misc修复。虽然在内核周期的这个中期阶段,char/misc的修复往往不是太令人兴奋,但这个pull request有解决明尼苏达大学研究人员补丁的变化。Greg在拉动请求说明中指出:
这里大部分是umn.edu重新审查所有先前提交的补丁的结果。这导致了大量的回滚和 "正确"的修改,这其中没有明尼苏达大学的参与。我想感谢超过80个不同的开发人员,他们帮助审查和修复了这个混乱的局面。
根据umn.edu的Git活动,有37个内核补丁被这个拉动请求恢复了。恢复的范围从ALSA到媒体子系统、网络和其他领域。这是多年来来自umn.edu开发者的150多个补丁中的37个被恢复的补丁。
下面是部分对他们已经完成回滚的补丁中的一些问题的技术解释:
这个修改的原始提交信息是不正确的,因为代码路径永远不可能导致NULL的解除引用,暗指无论用什么工具来 "找到它"都是错误的。这只是一个可选的资源保留,所以删除这个检查就可以了 。
###
虽然最初的提交确实让 "NULL解除引用"不发生,但它没有正确地将错误传回给调用者,也没有修复drivers/net/ethernet/cavium/liquidio/lio_vf_main.c中这个相同的问题,因为某些原因。
###
这个提交是不正确的,它不应该使用unlikely,也没有将错误正确地传播给调用的函数,所以在这个时间点应该被撤销。另外,如果检查失败,工作队列仍然被认为是被分配的,所以进一步的访问会继续失败,这意味着这个补丁对解决根本问题毫无帮助。
###
经过审查,我们发现这个提交根本不需要,因为这个改动是无用的,因为这个函数只有在of_match_device匹配到某个东西时才能被调用。所以它应该被撤销。
在其他的补丁中,大多是由于没有实质性的价值,或者最坏的情况下是不正确/不完整的代码而最终被撤销。