arm-smmu 5000000.iommu: Cannot accommodate DMA offset for IOMMU page tables
Robin Murphy
robin.murphy at arm.com
Mon Sep 21 10:51:24 EDT 2020
On 2020-09-21 14:20, Naresh Kamboju wrote:
[...]
> [ 2.256403] e1000e 0000:01:00.0: Adding to iommu group 0
> [ 2.261733] arm-smmu 5000000.iommu: Cannot accommodate DMA offset
> for IOMMU page tables
Ah, I know what's going on there - the dma_range_map stuff has
overlooked a subtlety, but it's easily fixed.
> [ 2.269752] Unable to handle kernel NULL pointer dereference at
> virtual address 0000000000000000
...although either way that's really not how we should subsequently
handle failing to allocate a pagetable. I guess I'll take a look into
what the deal is there as well :(
Robin.
> [ 2.278544] Mem abort info:
> [ 2.281334] ESR = 0x96000004
> [ 2.284389] EC = 0x25: DABT (current EL), IL = 32 bits
> [ 2.289705] SET = 0, FnV = 0
> [ 2.292759] EA = 0, S1PTW = 0
> [ 2.295900] Data abort info:
> [ 2.298781] ISV = 0, ISS = 0x00000004
> [ 2.302618] CM = 0, WnR = 0
> [ 2.305581] [0000000000000000] user address but active_mm is swapper
> [ 2.311941] Internal error: Oops: 96000004 [#1] PREEMPT SMP
> [ 2.317512] Modules linked in:
> [ 2.320566] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
> 5.9.0-rc5-next-20200921 #1
> [ 2.329352] Hardware name: Freescale Layerscape 2088A RDB Board (DT)
> [ 2.335705] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--)
> [ 2.341715] pc : arm_smmu_flush_iotlb_all+0x28/0x90
> [ 2.346590] lr : iommu_create_device_direct_mappings.isra.0+0x1f0/0x218
> [ 2.353203] sp : ffff80001005b9b0
> [ 2.356511] x29: ffff80001005b9b0 x28: 0000000000000000
> [ 2.361822] x27: ffffdc3792e904e0 x26: ffff80001005ba48
> [ 2.367134] x25: ffff0082ee6b0000 x24: ffff0082ed88e0a8
> [ 2.372445] x23: 00000000fffffff4 x22: 0000000000001000
> [ 2.377755] x21: ffff80001005ba48 x20: 0000000000000000
> [ 2.383066] x19: ffff0082cceeeb58 x18: 0000000000000010
> [ 2.388377] x17: 0000000000000000 x16: 00000000833b5ff2
> [ 2.393688] x15: ffff0082ee6b0480 x14: 203a756d6d6f692e
> [ 2.398999] x13: 3030303030303520 x12: 61646f6d6d6f6363
> [ 2.404311] x11: 6120746f6e6e6143 x10: 6f66207465736666
> [ 2.409622] x9 : ffffdc3791d31078 x8 : ffff0082ed8ffd00
> [ 2.414933] x7 : 0000000000000000 x6 : 000000000000003f
> [ 2.420244] x5 : 0000000000000040 x4 : ffff80001005b970
> [ 2.425554] x3 : 0000000000000000 x2 : 0000000000000000
> [ 2.430865] x1 : ffffdc37927dd2f0 x0 : ffff0082cceeeb58
> [ 2.436176] Call trace:
> [ 2.438618] arm_smmu_flush_iotlb_all+0x28/0x90
> [ 2.443144] iommu_create_device_direct_mappings.isra.0+0x1f0/0x218
> [ 2.449409] iommu_probe_device+0x6c/0x120
> [ 2.453501] of_iommu_configure+0x134/0x218
> [ 2.457683] of_dma_configure_id+0x110/0x2e8
> [ 2.461950] pci_dma_configure+0x4c/0xd8
> [ 2.465870] really_probe+0xac/0x4d8
> [ 2.469441] driver_probe_device+0xfc/0x168
> [ 2.473620] device_driver_attach+0x7c/0x88
> [ 2.477799] __driver_attach+0xac/0x178
> [ 2.481631] bus_for_each_dev+0x78/0xc8
> [ 2.485463] driver_attach+0x2c/0x38
> [ 2.489033] bus_add_driver+0x14c/0x230
> [ 2.492865] driver_register+0x6c/0x128
> [ 2.496696] __pci_register_driver+0x4c/0x58
> [ 2.500964] e1000_init_module+0x44/0x50
> [ 2.504882] do_one_initcall+0x4c/0x2d0
> [ 2.508714] kernel_init_freeable+0x214/0x280
> [ 2.513068] kernel_init+0x1c/0x120
> [ 2.516552] ret_from_fork+0x10/0x30
> [ 2.520124] Code: 910003fd a90153f3 aa0003f3 f85a8014 (f9400280)
> [ 2.526224] ---[ end trace d051012f465b08ec ]---
> [ 2.530848] Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
> [ 2.538506] SMP: stopping secondary CPUs
> [ 2.542431] Kernel Offset: 0x5c3781480000 from 0xffff800010000000
> [ 2.548521] PHYS_OFFSET: 0xffffdb6ac0000000
> [ 2.552700] CPU features: 0x0240022,21806008
> [ 2.556965] Memory Limit: none
>
> full test log,
> https://lavalab.nxp.com/scheduler/job/86650#L849
>
More information about the linux-mtd
mailing list