草庐IT

iomapped

全部标签

linux - linux 中的 iomapped 内存系统调用失败。

我正在将一些io内存映射到驱动程序中的vmalloced区域。我还使用标志(ioremap_page_range中的PAGE_SHARED)与用户进程共享该区域。现在我可以访问这个共享内存到用户空间。我可以写入和读取此内存。但是,如果我将此内存作为缓冲区传递给recv或send等系统调用,则调用会因内存错误而失败(Memorynotmappedintouserprocess)。不过,我确信我的缓冲区没有任何问题。因此,我共享内存和系统调用错误检查的方式似乎存在一些冲突。驱动代码:shared_buf=__get_vm_area(size,VM_IOREMAP,VMALLOCS_STAR

linux - linux 中的 iomapped 内存系统调用失败。

我正在将一些io内存映射到驱动程序中的vmalloced区域。我还使用标志(ioremap_page_range中的PAGE_SHARED)与用户进程共享该区域。现在我可以访问这个共享内存到用户空间。我可以写入和读取此内存。但是,如果我将此内存作为缓冲区传递给recv或send等系统调用,则调用会因内存错误而失败(Memorynotmappedintouserprocess)。不过,我确信我的缓冲区没有任何问题。因此,我共享内存和系统调用错误检查的方式似乎存在一些冲突。驱动代码:shared_buf=__get_vm_area(size,VM_IOREMAP,VMALLOCS_STAR