來自https://szlin.me/的博主的郵件解答,其中第一點有不小的作用。

Hi Rick,

一般而言, 遇到這種改版造成行為改變的議題, 我常用以下兩種方法.

  1. 找出並定位改變的 kernel 版本 - 使用 git blame + bisect 來找出 function argument or content 的差異, 並詳細閱讀 commit log, 大概就會有手感.

如果找到並閱讀完 commit log 還是沒有頭緒, 可試試
2. 透過 grep 關鍵字, 找出其他也有使用該 function 的檔案, 了解它們在新版的使用方法. 並可搭配 git blame 來看如何這些檔案如何從舊版移植到新版

以上行為也可以搭配 kernel documentation 來閱讀, 雖然有時候文件會跟不上 code 進版速度.

最後, 若公司允許, 建議把 driver 進行 upstream, 推入 Linux kernel mainline 中.
這樣一來就不會有因為 kernel 進版而導致錯誤, 因為 Linux kernel 本身進板時, maintainer 就會處理了.

以上, 希望對你有所幫助.

SZ