Xilinx-FPGA-PCIe-XDMA 驱动内核兼容性问题修复方案
问题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_CODE pci_aer_clear_nonfatal_status(pdev);+#else pci_cleanup_aer_uncorrect_error_status(pdev);+#endif}