The patch titled Subject: mm: remove map_vm_range has been removed from the -mm tree. Its filename was mm-remove-map_vm_range.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ From: Christoph Hellwig <hch@xxxxxx> Subject: mm: remove map_vm_range Switch all callers to map_kernel_range, which symmetric to the unmap side (as well as the _noflush versions). Link: http://lkml.kernel.org/r/20200414131348.444715-17-hch@xxxxxx Signed-off-by: Christoph Hellwig <hch@xxxxxx> Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> Cc: Christophe Leroy <christophe.leroy@xxxxxx> Cc: Daniel Vetter <daniel@xxxxxxxx> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> Cc: David Airlie <airlied@xxxxxxxx> Cc: Gao Xiang <xiang@xxxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> Cc: Laura Abbott <labbott@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Michael Kelley <mikelley@xxxxxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: Nitin Gupta <ngupta@xxxxxxxxxx> Cc: Robin Murphy <robin.murphy@xxxxxxx> Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> Cc: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx> Cc: Wei Liu <wei.liu@xxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Cc: Paul Mackerras <paulus@xxxxxxxxxx> Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- Documentation/core-api/cachetlb.rst | 2 +- include/linux/vmalloc.h | 10 ++++------ mm/vmalloc.c | 21 +++++++-------------- mm/zsmalloc.c | 4 +++- net/ceph/ceph_common.c | 3 +-- 5 files changed, 16 insertions(+), 24 deletions(-) --- a/Documentation/core-api/cachetlb.rst~mm-remove-map_vm_range +++ a/Documentation/core-api/cachetlb.rst @@ -213,7 +213,7 @@ Here are the routines, one by one: there will be no entries in the cache for the kernel address space for virtual addresses in the range 'start' to 'end-1'. - The first of these two routines is invoked after map_vm_area() + The first of these two routines is invoked after map_kernel_range() has installed the page table entries. The second is invoked before unmap_kernel_range() deletes the page table entries. --- a/include/linux/vmalloc.h~mm-remove-map_vm_range +++ a/include/linux/vmalloc.h @@ -168,11 +168,11 @@ extern struct vm_struct *__get_vm_area_c extern struct vm_struct *remove_vm_area(const void *addr); extern struct vm_struct *find_vm_area(const void *addr); -extern int map_vm_area(struct vm_struct *area, pgprot_t prot, - struct page **pages); #ifdef CONFIG_MMU extern int map_kernel_range_noflush(unsigned long start, unsigned long size, pgprot_t prot, struct page **pages); +int map_kernel_range(unsigned long start, unsigned long size, pgprot_t prot, + struct page **pages); extern void unmap_kernel_range_noflush(unsigned long addr, unsigned long size); extern void unmap_kernel_range(unsigned long addr, unsigned long size); static inline void set_vm_flush_reset_perms(void *addr) @@ -189,14 +189,12 @@ map_kernel_range_noflush(unsigned long s { return size >> PAGE_SHIFT; } +#define map_kernel_range map_kernel_range_noflush static inline void unmap_kernel_range_noflush(unsigned long addr, unsigned long size) { } -static inline void -unmap_kernel_range(unsigned long addr, unsigned long size) -{ -} +#define unmap_kernel_range unmap_kernel_range_noflush static inline void set_vm_flush_reset_perms(void *addr) { } --- a/mm/vmalloc.c~mm-remove-map_vm_range +++ a/mm/vmalloc.c @@ -273,8 +273,8 @@ int map_kernel_range_noflush(unsigned lo return 0; } -static int map_kernel_range(unsigned long start, unsigned long size, - pgprot_t prot, struct page **pages) +int map_kernel_range(unsigned long start, unsigned long size, pgprot_t prot, + struct page **pages) { int ret; @@ -2028,16 +2028,6 @@ void unmap_kernel_range(unsigned long ad flush_tlb_kernel_range(addr, end); } -int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page **pages) -{ - unsigned long addr = (unsigned long)area->addr; - int err; - - err = map_kernel_range(addr, get_vm_area_size(area), prot, pages); - - return err > 0 ? 0 : err; -} - static inline void setup_vmalloc_vm_locked(struct vm_struct *vm, struct vmap_area *va, unsigned long flags, const void *caller) { @@ -2409,7 +2399,8 @@ void *vmap(struct page **pages, unsigned if (!area) return NULL; - if (map_vm_area(area, prot, pages)) { + if (map_kernel_range((unsigned long)area->addr, size, prot, + pages) < 0) { vunmap(area->addr); return NULL; } @@ -2472,8 +2463,10 @@ static void *__vmalloc_area_node(struct } atomic_long_add(area->nr_pages, &nr_vmalloc_pages); - if (map_vm_area(area, prot, pages)) + if (map_kernel_range((unsigned long)area->addr, get_vm_area_size(area), + prot, pages) < 0) goto fail; + return area->addr; fail: --- a/mm/zsmalloc.c~mm-remove-map_vm_range +++ a/mm/zsmalloc.c @@ -1138,7 +1138,9 @@ static inline void __zs_cpu_down(struct static inline void *__zs_map_object(struct mapping_area *area, struct page *pages[2], int off, int size) { - BUG_ON(map_vm_area(area->vm, PAGE_KERNEL, pages)); + unsigned long addr = (unsigned long)area->vm->addr; + + BUG_ON(map_kernel_range(addr, PAGE_SIZE * 2, PAGE_KERNEL, pages) < 0); area->vm_addr = area->vm->addr; return area->vm_addr + off; } --- a/net/ceph/ceph_common.c~mm-remove-map_vm_range +++ a/net/ceph/ceph_common.c @@ -190,8 +190,7 @@ EXPORT_SYMBOL(ceph_compare_options); * kvmalloc() doesn't fall back to the vmalloc allocator unless flags are * compatible with (a superset of) GFP_KERNEL. This is because while the * actual pages are allocated with the specified flags, the page table pages - * are always allocated with GFP_KERNEL. map_vm_area() doesn't even take - * flags because GFP_KERNEL is hard-coded in {p4d,pud,pmd,pte}_alloc(). + * are always allocated with GFP_KERNEL. * * ceph_kvmalloc() may be called with GFP_KERNEL, GFP_NOFS or GFP_NOIO. */ _ Patches currently in -mm which might be from hch@xxxxxx are exec-simplify-the-copy_strings_kernel-calling-convention.patch exec-open-code-copy_string_kernel.patch amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch kernel-move-use_mm-unuse_mm-to-kthreadc.patch kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch kernel-better-document-the-use_mm-unuse_mm-api-contract.patch kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch kernel-set-user_ds-in-kthread_use_mm.patch arm-fix-the-flush_icache_range-arguments-in-set_fiq_handler.patch nds32-unexport-flush_icache_page.patch powerpc-unexport-flush_icache_user_range.patch unicore32-remove-flush_cache_user_range.patch asm-generic-fix-the-inclusion-guards-for-cacheflushh.patch asm-generic-dont-include-linux-mmh-in-cacheflushh.patch asm-generic-dont-include-linux-mmh-in-cacheflushh-fix.patch asm-generic-improve-the-flush_dcache_page-stub.patch alpha-use-asm-generic-cacheflushh.patch arm64-use-asm-generic-cacheflushh.patch c6x-use-asm-generic-cacheflushh.patch hexagon-use-asm-generic-cacheflushh.patch ia64-use-asm-generic-cacheflushh.patch microblaze-use-asm-generic-cacheflushh.patch m68knommu-use-asm-generic-cacheflushh.patch openrisc-use-asm-generic-cacheflushh.patch powerpc-use-asm-generic-cacheflushh.patch riscv-use-asm-generic-cacheflushh.patch armsparcunicore32-remove-flush_icache_user_range.patch mm-rename-flush_icache_user_range-to-flush_icache_user_page.patch asm-generic-add-a-flush_icache_user_range-stub.patch sh-implement-flush_icache_user_range.patch xtensa-implement-flush_icache_user_range.patch arm-rename-flush_cache_user_range-to-flush_icache_user_range.patch m68k-implement-flush_icache_user_range.patch exec-only-build-read_code-when-needed.patch exec-use-flush_icache_user_range-in-read_code.patch binfmt_flat-use-flush_icache_user_range.patch nommu-use-flush_icache_user_range-in-brk-and-mmap.patch module-move-the-set_fs-hack-for-flush_icache_range-to-m68k.patch maccess-unexport-probe_kernel_write-and-probe_user_write.patch maccess-remove-various-unused-weak-aliases.patch maccess-remove-duplicate-kerneldoc-comments.patch maccess-clarify-kerneldoc-comments.patch maccess-update-the-top-of-file-comment.patch maccess-rename-strncpy_from_unsafe_user-to-strncpy_from_user_nofault.patch maccess-rename-strncpy_from_unsafe_strict-to-strncpy_from_kernel_nofault.patch maccess-rename-strnlen_unsafe_user-to-strnlen_user_nofault.patch maccess-remove-probe_read_common-and-probe_write_common.patch maccess-unify-the-probe-kernel-arch-hooks.patch bpf-factor-out-a-bpf_trace_copy_string-helper.patch bpf-handle-the-compat-string-in-bpf_trace_copy_string-better.patch bpf-rework-the-compat-kernel-probe-handling.patch tracing-kprobes-handle-mixed-kernel-userspace-probes-better.patch maccess-remove-strncpy_from_unsafe.patch maccess-always-use-strict-semantics-for-probe_kernel_read.patch maccess-move-user-access-routines-together.patch maccess-allow-architectures-to-provide-kernel-probing-directly.patch x86-use-non-set_fs-based-maccess-routines.patch maccess-return-erange-when-copy_from_kernel_nofault_allowed-fails.patch