เมื่อพยายามติดตั้งไดรเวอร์ตัวอย่างที่สร้างโดย R-Tile Avalon® Streaming FPGA IP สําหรับตัวอย่างการออกแบบ PCI Express* ใน CentOS* 8 ระบบจะแสดงข้อความแสดงข้อผิดพลาดดังที่แสดงด้านล่าง:
ข้อผิดพลาด: แมโคร "access_ok" ส่ง 3 อาร์กิวเมนต์ แต่ใช้เพียง 2
if(! access_ok(VERIFY_WRITE, buf, sizeof (buf)) {
ข้อผิดพลาด: 'access_ok' ที่ไม่ได้ประกาศ (การใช้งานครั้งแรกในฟังก์ชันนี้)
if(! access_ok(VERIFY_WRITE, buf, sizeof (buf)) {
เคอร์เนล Linux* ไม่ตรงกันทําให้เกิดข้อผิดพลาดเหล่านี้ ขั้นตอนต่อไปนี้สามารถช่วยแก้ไขปัญหานี้ได้:
- ใน intel_fpga_pcie_chr.c ให้ลบอาร์กิวเมนต์แรก (VERIFY_WRITE/VERIFY_READ) ของฟังก์ชัน "access_ok"
- ใน intel_fpga_pcie_ioctl.c ให้แทนที่ชื่อของฟังก์ชัน "dma_zalloc_coherent" ด้วย "dma_alloc_coherent"
- ใน intel_fpga_pcie_ioctl.c ใน "access_ok(uarg, sizeof (uarg))" เปลี่ยนอาร์กิวเมนต์ uarg เป็น (void__user *) uarg
- ใน intel_fpga_pcie_setup.c ให้แทนที่ชื่อของฟังก์ชัน "ioremap_nocache" ด้วย "ioremap_cache"
- ใน intel_fpga_pcie_setup.c ให้ข้อคิดเห็นเกี่ยวกับบรรทัดของรหัส "MODULE_SUPPORTED_DEVICE("Intel(R) Stratix 10 FPGA")
สามารถติดตั้งไดรเวอร์ได้สําเร็จและทํางานได้อย่างถูกต้องหลังจากการแก้ไขเหล่านี้
ปัญหานี้ไม่ได้รับการกําหนดเวลาให้ได้รับการแก้ไขในขณะนี้