我已经在用户空间中映射了 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 函数将该地址传递给驱动程序。
在驱动程序代码中,
我get_user_pages
从从 ioctl 获得的那个地址打电话。
在执行中,get_user_pages
调用失败。
关于如何解决这个问题的任何想法。