mmap()资源暂时不可用

时间:2017-09-14 22:45:08

标签: memory memory-management kernel-module mmap

我正在尝试实现内存管理内核模块。此模块使用mmap()系统调用。实施后,我尝试调用mmap,这给了我一个错误Resource temporarily unavailable 我经历了this线程。该解决方案在我的案例中不起作用。

以下是内核实现: - 排除变量声明。

kmalloc_ptr = kmalloc(size, GFP_KERNEL)
static int simple_mmap(struct file *filp, struct vm_area_struct *vma)
{
 remap = remap_pfn_range(vma, vma->vm_start, (virt_to_phys)(kmalloc_ptr) >> 12,
                vma->vm_end - vma->vm_start,
                vma->vm_page_prot)
        return -EAGAIN;
<{1}}中的

值为0

1 个答案:

答案 0 :(得分:1)

我发现错误,我怀疑的映射没有错。

错误重映射应该用作

`if ((remap_pfn_range(vma, vma->vm_start, (unsigned long long)(virt_to_phys((void *)mapped_data)) >> PAGE_SHIFT, size, vma->vm_page_prot))
return -EAGAIN`;