mm: Introduce vmap_page_range() to map pages in PCI address space
authorAlexei Starovoitov <ast@kernel.org>
Fri, 8 Mar 2024 17:12:54 +0000 (09:12 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 11 Mar 2024 15:58:10 +0000 (16:58 +0100)
commitd7bca9199a27b8690ae1c71dc11f825154af7234
treebab755c8891d6e8c5868a571a3270cc98c00b99f
parent96b0f5addc7a0d9ed1f4969ca85ed7513cb1ed25
mm: Introduce vmap_page_range() to map pages in PCI address space

ioremap_page_range() should be used for ranges within vmalloc range only.
The vmalloc ranges are allocated by get_vm_area(). PCI has "resource"
allocator that manages PCI_IOBASE, IO_SPACE_LIMIT address range, hence
introduce vmap_page_range() to be used exclusively to map pages
in PCI address space.

Fixes: 3e49a866c9dc ("mm: Enforce VM_IOREMAP flag and range in ioremap_page_range.")
Reported-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://lore.kernel.org/bpf/CANiq72ka4rir+RTN2FQoT=Vvprp_Ao-CvoYEkSNqtSY+RZj+AA@mail.gmail.com
arch/arm/mm/ioremap.c
arch/loongarch/kernel/setup.c
arch/mips/loongson64/init.c
arch/powerpc/kernel/isa-bridge.c
drivers/pci/pci.c
include/linux/io.h
mm/vmalloc.c