Open ghost opened 6 years ago
ご報告ありがとうございます。返信が遅くなり申し訳ありません。 ご指摘頂きましたエラーは、linux/include/linux/mm.h の中に定義されている、vm_operations_struct 構造体のメンバである fault 関数の引数が、新しいバージョンの Linux カーネルで変更されたことによるもののようです。 古いバージョン ( 4.10 ) では、以下のようだったものが、
int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
新しいバージョン ( 4.13 ) では、宣言が以下のように変更されていました。
int (*fault)(struct vm_fault *vmf);
この変更に対応するために、カーネルのバージョンによって、引数を変更する箇所を追加しました。 https://github.com/yasukata/kernel_module_cdev_template/commit/b455554ce9e3fc308413f0e6a14679ac34ba83eb この修正を追加後、手元の環境では、4.13 でもコンパイルできるようになりました。
以下のようなエラーが出てしまいます。