【问题标题】:get_user_pages failed for PCIe memoryPCIe 内存的 get_user_pages 失败
【发布时间】:2013-06-22 00:07:17
【问题描述】:

我已经将 pci 内存映射到了用户空间,比如

fs = open("/dev/mem",O_RDWR | O_SYNC);

mmap_src = mmap(NULL, BUFF_COUNT, PROT_READ | PROT_WRITE, MAP_SHARED, fs, 0xe0000000);

0xe0000000是pci内存设备的地址。

在 mmaped 成功后,我使用 ioctl 函数将该地址传递给驱动程序。

在驱动程序代码中,

我从我从 ioctl 获得的那个地址呼叫get_user_pages

在执行中,get_user_pages 调用失败。

知道如何解决这个问题。

【问题讨论】:

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


    【解决方案1】:

    get_user_pages 返回有效物理内存而不是 IO 内存的 struct page 指针,因此预期 get_user_pages 将失败用于 PCI 内存。除非您提供有关您的设计的更多详细信息,否则很难建议如何修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多