Khi cố gắng cài đặt trình điều khiển mẫu được tạo bởi IP FPGA R-Tile Avalon® Streaming cho Ví dụ thiết kế PCI Express* trong CentOS* 8, các thông báo lỗi như hình dưới đây sẽ được nhìn thấy:
Lỗi: macro "access_ok" đã vượt qua 3 đối số, nhưng chỉ mất 2
if(! access_ok(VERIFY_WRITE, buf, sizeof(buf))) {
Lỗi: 'access_ok' không khai báo (lần sử dụng đầu tiên trong hàm này)
if(! access_ok(VERIFY_WRITE, buf, sizeof(buf))) {
Nhân Linux* không khớp gây ra những lỗi này. Các bước sau đây có thể giúp giải quyết vấn đề này:
- Trong intel_fpga_pcie_chr.c, xóa đối số đầu tiên (VERIFY_WRITE/VERIFY_READ) của hàm "access_ok"
- Trong intel_fpga_pcie_ioctl.c, thay thế tên của hàm "dma_zalloc_coherent" bằng "dma_alloc_coherent"
- Trong intel_fpga_pcie_ioctl.c, trong "access_ok(uarg, sizeof(uarg))", thay đổi đối số uarg thành (void__user *)uarg
- Trong intel_fpga_pcie_setup.c, thay thế tên của hàm "ioremap_nocache" bằng "ioremap_cache"
- Trong intel_fpga_pcie_setup.c, chú thích dòng mã "MODULE_SUPPORTED_DEVICE("Intel(R) Stratix 10 FPGA")"
Trình điều khiển có thể được cài đặt thành công và hoạt động chính xác sau những sửa đổi này.
Sự cố này hiện không được lên lịch để khắc phục.