Linux 5.13還原及修復明尼蘇達大學的問題補丁
一個月前,明尼蘇達大學被禁止為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匹配到某個東西時才能被調用。所以它應該被撤銷。
在其他的補丁中,大多是由於沒有實質性的價值,或者最壞的情況下是不正確/不完整的代碼而最終被撤銷。