| From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> |
| Subject: mm: remove mm/io-mapping.c |
| Date: Fri, 25 Jul 2025 15:29:01 +0100 |
| |
| This is dead code, which was used from commit b739f125e4eb ("i915: use |
| io_mapping_map_user") but reverted a month later by commit 0e4fe0c9f2f9 |
| ("Revert "i915: use io_mapping_map_user"") back in 2021. |
| |
| Since then nobody has used it, so remove it. |
| |
| [akpm@linux-foundation.org: update Documentation/core-api/mm-api.rst, per Vlastimil] |
| Link: https://lkml.kernel.org/r/20250725142901.81502-1-lorenzo.stoakes@oracle.com |
| Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> |
| Acked-by: David Hildenbrand <david@redhat.com> |
| Acked-by: Vlastimil Babka <vbabka@suse.cz> |
| Cc: Liam Howlett <liam.howlett@oracle.com> |
| Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> |
| Cc: Michal Hocko <mhocko@suse.com> |
| Cc: Mike Rapoport <rppt@kernel.org> |
| Cc: Suren Baghdasaryan <surenb@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/core-api/mm-api.rst | 1 |
| include/linux/io-mapping.h | 3 -- |
| mm/Kconfig | 4 --- |
| mm/Makefile | 1 |
| mm/io-mapping.c | 30 ---------------------------- |
| 5 files changed, 39 deletions(-) |
| |
| --- a/Documentation/core-api/mm-api.rst~mm-remove-mm-io-mappingc |
| +++ a/Documentation/core-api/mm-api.rst |
| @@ -139,4 +139,3 @@ More Memory Management Functions |
| .. kernel-doc:: mm/mmu_notifier.c |
| .. kernel-doc:: mm/balloon_compaction.c |
| .. kernel-doc:: mm/huge_memory.c |
| -.. kernel-doc:: mm/io-mapping.c |
| --- a/include/linux/io-mapping.h~mm-remove-mm-io-mappingc |
| +++ a/include/linux/io-mapping.h |
| @@ -225,7 +225,4 @@ io_mapping_free(struct io_mapping *iomap |
| kfree(iomap); |
| } |
| |
| -int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, |
| - unsigned long addr, unsigned long pfn, unsigned long size); |
| - |
| #endif /* _LINUX_IO_MAPPING_H */ |
| diff --git a/mm/io-mapping.c a/mm/io-mapping.c |
| deleted file mode 100644 |
| --- a/mm/io-mapping.c |
| +++ /dev/null |
| @@ -1,30 +0,0 @@ |
| -// SPDX-License-Identifier: GPL-2.0-only |
| - |
| -#include <linux/mm.h> |
| -#include <linux/io-mapping.h> |
| - |
| -/** |
| - * io_mapping_map_user - remap an I/O mapping to userspace |
| - * @iomap: the source io_mapping |
| - * @vma: user vma to map to |
| - * @addr: target user address to start at |
| - * @pfn: physical address of kernel memory |
| - * @size: size of map area |
| - * |
| - * Note: this is only safe if the mm semaphore is held when called. |
| - */ |
| -int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, |
| - unsigned long addr, unsigned long pfn, unsigned long size) |
| -{ |
| - vm_flags_t expected_flags = VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; |
| - |
| - if (WARN_ON_ONCE((vma->vm_flags & expected_flags) != expected_flags)) |
| - return -EINVAL; |
| - |
| - pgprot_t remap_prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | |
| - (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK)); |
| - |
| - /* We rely on prevalidation of the io-mapping to skip pfnmap tracking. */ |
| - return remap_pfn_range_notrack(vma, addr, pfn, size, remap_prot); |
| -} |
| -EXPORT_SYMBOL_GPL(io_mapping_map_user); |
| --- a/mm/Kconfig~mm-remove-mm-io-mappingc |
| +++ a/mm/Kconfig |
| @@ -1242,10 +1242,6 @@ config KMAP_LOCAL |
| config KMAP_LOCAL_NON_LINEAR_PTE_ARRAY |
| bool |
| |
| -# struct io_mapping based helper. Selected by drivers that need them |
| -config IO_MAPPING |
| - bool |
| - |
| config MEMFD_CREATE |
| bool "Enable memfd_create() system call" if EXPERT |
| |
| --- a/mm/Makefile~mm-remove-mm-io-mappingc |
| +++ a/mm/Makefile |
| @@ -141,7 +141,6 @@ obj-$(CONFIG_MEMFD_CREATE) += memfd.o |
| obj-$(CONFIG_MAPPING_DIRTY_HELPERS) += mapping_dirty_helpers.o |
| obj-$(CONFIG_PTDUMP) += ptdump.o |
| obj-$(CONFIG_PAGE_REPORTING) += page_reporting.o |
| -obj-$(CONFIG_IO_MAPPING) += io-mapping.o |
| obj-$(CONFIG_HAVE_BOOTMEM_INFO_NODE) += bootmem_info.o |
| obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o |
| obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o |
| _ |