Re: arm64: WARNING: at mm/vmalloc.c:315 ioremap_page_range

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 8 Mar 2024 at 17:34, Arnd Bergmann <arnd@xxxxxxxx> 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.
> >
> > 1) WARNING: CPU: 1 PID: 201 at mm/vmalloc.c:315 ioremap_page_range
> > 2)  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@xxxxxxxxxx>

<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




[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux