On Thu, Mar 7, 2024 at 9:54 AM Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > > On Thu, Mar 7, 2024 at 9:42 AM Miguel Ojeda > <miguel.ojeda.sandonis@xxxxxxxxx> wrote: > > > > Hi arm64/bpf/pci, > > > > In today's next-20240307 with a defconfig LLVM=1 I am seeing [1] under > > QEMU virt, i.e. from > > https://lore.kernel.org/all/20240305030516.41519-2-alexei.starovoitov@xxxxxxxxx/ > > applied to the bpf-next tree. > > > > Cheers, > > Miguel > > > > [1] > > > > [ 0.425177] pci-host-generic 4010000000.pcie: host bridge > > /pcie@10000000 ranges: > > [ 0.425886] pci-host-generic 4010000000.pcie: IO > > 0x003eff0000..0x003effffff -> 0x0000000000 > > [ 0.426534] pci-host-generic 4010000000.pcie: MEM > > 0x0010000000..0x003efeffff -> 0x0010000000 > > [ 0.426764] pci-host-generic 4010000000.pcie: MEM > > 0x8000000000..0xffffffffff -> 0x8000000000 > > [ 0.427324] ------------[ cut here ]------------ > > [ 0.427456] vm_area at addr ffffffffc0800000 is not marked as VM_IOREMAP > > [ 0.427944] WARNING: CPU: 0 PID: 1 at mm/vmalloc.c:315 > > ioremap_page_range+0x25c/0x2bc > > Great. Thanks for flagging. > Looks like this check found some misuse of ioremap_page_range. > > Note that without marking the address range as VM_IOREMAP > the vread_iter() will be bulk reading over IO and might > cause hard hangs and what not. > pci drivers need to mark their range as VM_IOREMAP. > That was the reason for the warning. > > I'll try to figure out which piece of code missed passing > VM_IOREMAP into vm_area. > I'm not familiar with pci, so help is greatly appreciated. Ok. I think I figured it out. Please try the attached patch.
Attachment:
0001-mm-Enforce-range-of-ioremap_page_range-when-it-s-ins.patch
Description: Binary data