PCI_内存的get_user_pages失败

时间:2013-04-01 07:29:58

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

我已经在用户空间中映射了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呼叫失败。

如何解决此问题。

1 个答案:

答案 0 :(得分:0)

get_user_pages返回有效物理内存的struct page指针,而不是IO内存,因此预计get_user_pages将因PCI内存而失败。除非你提供有关你的设计的更多细节,否则很难建议如何解决它。