Ao tentar instalar o driver de exemplo gerado pelo exemplo de projeto do R-Tile Avalon® Streaming FPGA IP para PCI Express* Design Example no CentOS* 8, são mostradas mensagens de erro como as mostradas abaixo:
erro: macro "access_ok" passou 3 argumentos, mas leva apenas 2
if(! access_ok (VERIFY_WRITE, buf, sizeof(buf)) {
erro: 'access_ok' não declarado (primeiro uso nesta função)
if(! access_ok (VERIFY_WRITE, buf, sizeof(buf)) {
Uma incompatibilidade com kernel Linux* causa esses erros. As seguintes etapas podem ajudar a resolver este problema:
- Em intel_fpga_pcie_chr.c, exclua o primeiro argumento (VERIFY_WRITE/VERIFY_READ) da função "access_ok"
- Em intel_fpga_pcie_ioctl.c, substitua o nome da função "dma_zalloc_coherent" por "dma_alloc_coherent"
- Em intel_fpga_pcie_ioctl.c, em "access_ok(uarg, sizeof(uarg)", mude o argumento uarg para (void__user *)uarg
- Em intel_fpga_pcie_setup.c, substitua o nome da função "ioremap_nocache" por "ioremap_cache"
- Em intel_fpga_pcie_setup.c, comente a linha de códigos "MODULE_SUPPORTED_DEVICE("Intel(R) Stratix 10 FPGA")"
O driver pode ser instalado com sucesso e funciona corretamente após essas modificações.
Este problema não está programado para ser corrigido no momento.