On Fri, 8 Mar 2024 at 17:34, Arnd Bergmann arnd@arndb.de wrote:
On Fri, Mar 8, 2024, at 12:53, Naresh Kamboju wrote:
The following warning was noticed while boot arm and arm64 devices. The below log is extracted from arm64 ROCK Pi 4B while booting and another issue is kernel oops noticed while testing selftests: kvm: memslot_perf_test.
- WARNING: CPU: 1 PID: 201 at mm/vmalloc.c:315 ioremap_page_range
- Unable to handle kernel NULL pointer dereference at virtual address
Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP Kernel panic - not syncing: Oops: Fatal exception in interrupt
Please find steps to reproduce, logs and config file links below.
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
<trim>
The warning was added by commit 3e49a866c9dc ("mm: Enforce VM_IOREMAP flag and range in ioremap_page_range.").
This indeed uses a special memory area at a fixed physical address, but I don't see where the vm_struct comes from.
Thanks for your explanation.
No idea here, but it seems unrelated to the first one.
I will reproduce this issue a few more times and get back to you.
Something is wrong with your address decoding, there are no line numbers.
Sorry for previous warning lines without line number. Here is the generated warning log with more information.
<4>[ 1.657402] ------------[ cut here ]------------ <4>[ 1.657810] vm_area at addr ffffffffc0800000 is not marked as VM_IOREMAP <4>[ 1.659792] WARNING: CPU: 1 PID: 1 at mm/vmalloc.c:315 ioremap_page_range (mm/vmalloc.c:3114) <4>[ 1.661271] Modules linked in: <4>[ 1.662912] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.8.0-rc7-next-20240307 #1 <4>[ 1.663816] Hardware name: linux,dummy-virt (DT) <4>[ 1.666004] pstate: 62400009 (nZCv daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--) <4>[ 1.667123] pc : ioremap_page_range (mm/vmalloc.c:3114) <4>[ 1.667602] lr : ioremap_page_range (mm/vmalloc.c:3114)
<trim>
<4>[ 1.683829] Call trace: <4>[ 1.684158] ioremap_page_range (mm/vmalloc.c:3114) <4>[ 1.684596] pci_remap_iospace (drivers/pci/pci.c:4138) <4>[ 1.685355] devm_pci_remap_iospace (drivers/pci/devres.c:43) <4>[ 1.687499] devm_of_pci_bridge_init (drivers/pci/of.c:592 drivers/pci/of.c:606) <4>[ 1.687932] devm_pci_alloc_host_bridge (drivers/pci/probe.c:2726 drivers/pci/probe.c:2704) <4>[ 1.688364] pci_host_common_probe (drivers/pci/controller/pci-host-common.c:64) <4>[ 1.688795] platform_probe (drivers/base/platform.c:1411) <4>[ 1.689557] really_probe (drivers/base/dd.c:623 (discriminator 1)) <4>[ 1.689914] __driver_probe_device (drivers/base/dd.c:808) <4>[ 1.691509] driver_probe_device (drivers/base/dd.c:831) <4>[ 1.691902] __driver_attach (drivers/base/dd.c:1217) <4>[ 1.692265] bus_for_each_dev (drivers/base/bus.c:445) <4>[ 1.693324] driver_attach (drivers/base/dd.c:1234) <4>[ 1.693634] bus_add_driver (drivers/base/bus.c:711) <4>[ 1.693945] driver_register (drivers/base/driver.c:258) <4>[ 1.694247] __platform_driver_register (drivers/base/platform.c:868) <4>[ 1.694639] gen_pci_driver_init (drivers/pci/controller/pci-host-generic.c:87) <4>[ 1.694969] do_one_initcall (init/main.c:1255) <4>[ 1.695316] do_initcall_level+0xa8/0x158 <4>[ 1.696868] do_initcalls+0x60/0xa8 <4>[ 1.697734] do_basic_setup+0x28/0x40 <4>[ 1.698282] kernel_init_freeable (init/main.c:1343 (discriminator 1) init/main.c:1537 (discriminator 1)) <4>[ 1.699075] kernel_init (init/main.c:1439) <4>[ 1.699840] ret_from_fork (arch/arm64/kernel/entry.S:861) <4>[ 1.701010] ---[ end trace 0000000000000000 ]---
- Naresh