PCI Express*용 R-타일 Avalon® 스트리밍 FPGA IP에 의해 생성된 예제 드라이버를 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에서 함수 "access_ok"의 첫 번째 인수(VERIFY_WRITE/VERIFY_READ)를 삭제합니다.
- 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")"를 주석 처리합니다.
드라이버는 성공적으로 설치될 수 있으며 이러한 수정 후에 올바르게 작동합니다.
이 문제는 현재 해결 예정이 아닙니다.