提交 73e44b0c 编写于 作者: N Nicholas Piggin 提交者: Yang Yingliang

mm/vmalloc: add vmap_range_noflush variant

ascend inclusion
category: feature
bugzilla: NA
CVE: NA

https://lwn.net/ml/linux-kernel/20200825145753.529284-11-npiggin@gmail.com/
--------------

As a side-effect, the order of flush_cache_vmap() and
arch_sync_kernel_mappings() calls are switched, but that now matches
the other callers in this file.
Signed-off-by: NNicholas Piggin <npiggin@gmail.com>
Signed-off-by: NRui Xiang <rui.xiang@huawei.com>
Reviewed-by: NDing Tianhong <dingtianhong@huawei.com>
Reviewed-by: NZefan Li <lizefan@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 30338029
...@@ -209,7 +209,7 @@ static int vmap_p4d_range(pgd_t *pgd, unsigned long addr, unsigned long end, ...@@ -209,7 +209,7 @@ static int vmap_p4d_range(pgd_t *pgd, unsigned long addr, unsigned long end,
return 0; return 0;
} }
int vmap_range(unsigned long addr, unsigned long end, static int vmap_range_noflush(unsigned long addr, unsigned long end,
phys_addr_t phys_addr, pgprot_t prot, phys_addr_t phys_addr, pgprot_t prot,
unsigned int max_page_shift) unsigned int max_page_shift)
{ {
...@@ -230,7 +230,17 @@ int vmap_range(unsigned long addr, unsigned long end, ...@@ -230,7 +230,17 @@ int vmap_range(unsigned long addr, unsigned long end,
break; break;
} while (pgd++, phys_addr += (next - addr), addr = next, addr != end); } while (pgd++, phys_addr += (next - addr), addr = next, addr != end);
flush_cache_vmap(start, end); return err;
}
int vmap_range(unsigned long addr, unsigned long end,
phys_addr_t phys_addr, pgprot_t prot,
unsigned int max_page_shift)
{
int err;
err = vmap_range_noflush(addr, end, phys_addr, prot, max_page_shift);
flush_cache_vmap(addr, end);
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册