問題1:implicit declaration of function "mmiowb()"
解決方法:在 libxdma.c 和 cdev_xvc.c 文件中注釋掉所有 mmiowb () 函數調用
問題2: "macro"access_ok"passed 3 arguments, but takes just 2"
解決方法:修改 cdev_ctrl.c 文件中兩處 access_ok 宏調用
- result = !access_ok(VERIFY_READ, (void __user *)arg,
+ result = !access_ok((void __user *)arg,
問題3: "implicit declaration of function ‘pci_cleanup_aer_uncorrect_error_status’"
解決方法:在 xdma_mod.c 文件中添加版本判斷,根據內核版本選擇不同的函數調用
static void xdma_error_resume(struct pci_dev *pdev){struct xdma_pci_dev *xpdev = dev_get_drvdata(&pdev->dev);pr_info("dev 0x%p,0x%p.\n", pdev, xpdev);
+#if KERNEL_VERSION(5, 7, 0) <= LINUX_VERSION_CODEpci_aer_clear_nonfatal_status(pdev);
+#elsepci_cleanup_aer_uncorrect_error_status(pdev);
+#endif
}