bugfix: mmio区域的vma的page已存在时,会重新创建新的page的问题

This commit is contained in:
fslongjin 2022-08-20 18:08:34 +08:00
parent 5747e4c8cc
commit 1e8e6523df

View File

@ -352,7 +352,12 @@ int mm_map_vma(struct vm_area_struct *vma, uint64_t paddr)
// 获取物理地址对应的页面 // 获取物理地址对应的页面
struct Page *pg; struct Page *pg;
if (vma->vm_flags & VM_IO) // 对于mmio的内存创建新的page结构体 if (vma->vm_flags & VM_IO) // 对于mmio的内存创建新的page结构体
pg = __create_mmio_page_struct(paddr); {
if (unlikely(vma->anon_vma == NULL || vma->anon_vma->page == NULL))
pg = __create_mmio_page_struct(paddr);
else
pg = vma->anon_vma->page;
}
else else
pg = Phy_to_2M_Page(paddr); pg = Phy_to_2M_Page(paddr);