shd*_*shd 5 c linux kernel linux-kernel
在我的驱动程序中,我试图将返回的地址映射ioremap到用户空间地址.
ioremap哪个地址返回?kmalloc地址有什么不同?ioremap?remap_pfn_range?ioremap()如果您正在使用,则不需要remap_pfn_range(). ioremap()将物理地址映射到内核虚拟地址. remap_pfn_range()将物理地址直接映射到用户空间.只需将你的物理地址(由PAGE_SHIFT降档产生一个pfn)直接传递给remap_pfn_range().您的问题依次为:
virt_to_phys()先调用,将内核虚拟地址转换为物理.但如果您实际上不需要内核访问此内存范围,请跳过一步