【问题标题】:PCIe DMA Driver for Linux适用于 Linux 的 PCIe DMA 驱动程序
【发布时间】:2018-03-09 23:34:42
【问题描述】:

我目前正在研究 Virtex 7 FPGA。我正在尝试为 Linux 的 PCIe DMA 驱动程序安装驱动程序。但它给了我以下错误:

错误:函数‘pci_enable_msix’的隐式声明[-Werror=implicit-function-declaration]

有人可以帮我解决这个错误吗?

【问题讨论】:

  • 请发布错误的文本而不是图片。那些使用移动设备或在许多公司代理后面的用户无法使用您的帖子。即使在典型的笔记本电脑显示器上也很难阅读..
  • 错误:函数‘pci_enable_msix’的隐式声明。这是我收到的错误。
  • 整个错误信息,在问题本身而不是图像中。在评论中发布它绝对不能解决我描述的问题。

标签: linux linux-kernel linux-device-driver fpga


【解决方案1】:

Linux 4.8 将其替换为 pci_enable_msix_range。你可以这样修复它:

#if LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0)
        rc = pci_enable_msix(pdev, lro->entry, req_nvec);
#else
        rc = pci_enable_msix_range(pdev, lro->entry, req_nvec, req_nvec);
#endif

【讨论】:

  • 你错过了这个 API 的更多更新,现在你提到的两个都已经过时了,需要调用 pci_alloc_irq_vectors()(IIRC 调用的名称)。
【解决方案2】:

Linux cross reference 是解决此类问题的一个很好的资源,因为您可以探索 API 相对于内核版本的变化。

【讨论】:

    猜你喜欢
    • 2019-11-19
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多