On Mon, May 09, 2022 at 05:13:05PM +0000, Vladimir Oltean wrote: > Hi Colin, > > On Sun, May 08, 2022 at 11:52:57AM -0700, Colin Foster wrote: > > Why does this get printed, if you put a dump_stack() in of_dma_configure_id()? Below. I'm one of the only users of IORESOURCE_REG, from what I can tell... Not sure if that's any consolation. > > > [ 2.835718] pinctrl-ocelot ocelot-pinctrl.0.auto: invalid resource > > [ 2.842717] gpiochip_find_base: found new base at 2026 > > [ 2.842774] gpio gpiochip4: (ocelot-gpio): created GPIO range 0->21 ==> ocelot-pinctrl.0.auto PIN 0->21 > > [ 2.845693] gpio gpiochip4: (ocelot-gpio): added GPIO chardev (254:4) > > [ 2.845828] gpio gpiochip4: registered GPIOs 2026 to 2047 on ocelot-gpio > > [ 2.845855] pinctrl-ocelot ocelot-pinctrl.0.auto: driver registered > > [ 2.855925] pinctrl-microchip-sgpio ocelot-sgpio.1.auto: DMA mask not set > > [ 2.863089] pinctrl-microchip-sgpio ocelot-sgpio.1.auto: invalid resource > > [ 2.870801] gpiochip_find_base: found new base at 1962 > > [ 2.871528] gpio_stub_drv gpiochip5: (ocelot-sgpio.1.auto-input): added GPIO chardev (254:5) > > [ 2.871666] gpio_stub_drv gpiochip5: registered GPIOs 1962 to 2025 on ocelot-sgpio.1.auto-input > > [ 2.872364] gpiochip_find_base: found new base at 1898 > > [ 2.873244] gpio_stub_drv gpiochip6: (ocelot-sgpio.1.auto-output): added GPIO chardev (254:6) > > [ 2.873354] gpio_stub_drv gpiochip6: registered GPIOs 1898 to 1961 on ocelot-sgpio.1.auto-output > > [ 2.881148] mscc-miim ocelot-miim0.2.auto: DMA mask not set [ 16.699517] CPU: 0 PID: 7 Comm: kworker/u2:0 Not tainted 5.18.0-rc5-01315-g0a0ea78e3a79-dirty #632 [ 16.708574] Hardware name: Generic AM33XX (Flattened Device Tree) [ 16.714704] Workqueue: events_unbound deferred_probe_work_func [ 16.720608] Backtrace: [ 16.723071] dump_backtrace from show_stack+0x20/0x24 [ 16.728179] r7:c31bcc10 r6:00000000 r5:c1647b38 r4:a0000013 [ 16.733863] show_stack from dump_stack_lvl+0x60/0x78 [ 16.738954] dump_stack_lvl from dump_stack+0x18/0x1c [ 16.744040] r7:c31bcc10 r6:c31bcc10 r5:c31bcc10 r4:00000000 [ 16.749724] dump_stack from of_dma_configure_id+0x48/0x314 [ 16.755335] of_dma_configure_id from platform_dma_configure+0x2c/0x38 [ 16.761911] r10:df9bf424 r9:df9bf424 r8:00000069 r7:c31bcc10 r6:c1bbac5c r5:c31bcc10 [ 16.769777] r4:00000000 [ 16.772320] platform_dma_configure from really_probe+0x78/0x298 platform_dma_configure gets called because... [ 16.778360] really_probe from __driver_probe_device+0x94/0xf4 [ 16.784230] r7:c31bcc10 r6:c31bcc10 r5:c1bbac5c r4:c31bcc10 [ 16.789913] __driver_probe_device from driver_probe_device+0x44/0xe0 [ 16.796391] r5:c1c51f28 r4:c1c51f24 [ 16.799980] driver_probe_device from __device_attach_driver+0x9c/0xc4 [ 16.806548] r9:df9bf424 r8:c1b9c728 r7:c1c51ef8 r6:c31bcc10 r5:e002191c r4:c1bbac5c [ 16.814326] __device_attach_driver from bus_for_each_drv+0x94/0xe4 [ 16.820635] r7:c1c51ef8 r6:c0a012e4 r5:e002191c r4:00000000 [ 16.826319] bus_for_each_drv from __device_attach+0x104/0x170 [ 16.832190] r6:00000001 r5:c31bcc54 r4:c31bcc10 [ 16.836827] __device_attach from device_initial_probe+0x1c/0x20 [ 16.842871] r6:c31bcc10 r5:c1b9ccd0 r4:c31bcc10 [ 16.847507] device_initial_probe from bus_probe_device+0x94/0x9c [ 16.853637] bus_probe_device from device_add+0x3ec/0x8b4 [ 16.859073] r7:c1c51ef8 r6:c31b9c00 r5:00000000 r4:c31bcc10 [ 16.864756] device_add from platform_device_add+0x100/0x210 [ 16.870455] r10:c1a21744 r9:c1a21724 r8:c31bcc10 r7:00000002 r6:c31bcc00 r5:c3201aa0 [ 16.878320] r4:00000002 [ 16.880864] platform_device_add from mfd_add_devices+0x308/0x62c platform_device_add sets up pdev->bus = &platform_bus_type; That assignment looks to date back to the before times... Now you have me curious. And a little scared :-) [ 16.887008] r10:00000000 r9:00000000 r8:00000000 r7:00000002 r6:c31bcc00 r5:c3201a40 [ 16.894875] r4:c12be398 r3:00000000 [ 16.898465] mfd_add_devices from devm_mfd_add_devices+0x80/0xc0 [ 16.904514] r10:df9be9bc r9:df9be9bc r8:00000005 r7:c12be2e8 r6:fffffffe r5:c31b9c00 [ 16.912381] r4:c31ecc40 [ 16.914924] devm_mfd_add_devices from ocelot_core_init+0x40/0x6c [ 16.921058] r8:00000065 r7:c31b9c00 r6:c31ec9c0 r5:00000000 r4:c31b9c00 [ 16.927790] ocelot_core_init from ocelot_spi_probe+0xf4/0x188 [ 16.933662] r5:00000000 r4:c31b9c00 [ 16.937251] ocelot_spi_probe from spi_probe+0x94/0xb8 [ 16.942434] r7:c31b9c00 r6:c1b9fc60 r5:c31b9c00 r4:00000000 [ 16.948118] spi_probe from really_probe+0x110/0x298 [ 16.953116] r7:c31b9c00 r6:c1b9fc70 r5:c31b9c00 r4:00000000 [ 16.958800] really_probe from __driver_probe_device+0x94/0xf4 [ 16.964669] r7:c31b9c00 r6:c31b9c00 r5:c1b9fc70 r4:c31b9c00 [ 16.970354] __driver_probe_device from driver_probe_device+0x44/0xe0 [ 16.976832] r5:c1c51f28 r4:c1c51f24 [ 16.980422] driver_probe_device from __device_attach_driver+0x9c/0xc4 [ 16.986991] r9:df9be9bc r8:c1b9c728 r7:c1c51ef8 r6:c31b9c00 r5:e0021bc4 r4:c1b9fc70 [ 16.994768] __device_attach_driver from bus_for_each_drv+0x94/0xe4 [ 17.001077] r7:c1c51ef8 r6:c0a012e4 r5:e0021bc4 r4:00000000 [ 17.006762] bus_for_each_drv from __device_attach+0x104/0x170 [ 17.012632] r6:00000001 r5:c31b9c44 r4:c31b9c00 [ 17.017269] __device_attach from device_initial_probe+0x1c/0x20 [ 17.023311] r6:c31b9c00 r5:c1bb0a50 r4:c31b9c00 [ 17.027948] device_initial_probe from bus_probe_device+0x94/0x9c [ 17.034077] bus_probe_device from device_add+0x3ec/0x8b4 [ 17.039513] r7:c1c51ef8 r6:c31b9800 r5:00000000 r4:c31b9c00 [ 17.045197] device_add from __spi_add_device+0x7c/0x10c [ 17.050550] r10:c1c53844 r9:c30ec810 r8:00000001 r7:c30ec810 r6:c31b9800 r5:c31b9c00 [ 17.058415] r4:00000000 [ 17.060959] __spi_add_device from spi_add_device+0x48/0x78 [ 17.066568] r7:00000000 r6:c31b9800 r5:c31b9c00 r4:c31b9a1c [ 17.072252] spi_add_device from of_register_spi_device+0x258/0x390 [ 17.078556] r5:df9be9a0 r4:c31b9c00 [ 17.082147] of_register_spi_device from spi_register_controller+0x26c/0x6d8 [ 17.089239] r8:c17105c0 r7:df9bea04 r6:df9be9a0 r5:00000000 r4:c31b9800 [ 17.095970] spi_register_controller from devm_spi_register_controller+0x24/0x60 [ 17.103412] r10:c1c53844 r9:c31e9584 r8:c31b9800 r7:c31b9800 r6:c30ec810 r5:c31b9800 [ 17.111278] r4:c31b9bc0 [ 17.113822] devm_spi_register_controller from omap2_mcspi_probe+0x4c8/0x574 [ 17.120924] r7:c31b9800 r6:00000000 r5:c30ec940 r4:c31b9bc0 [ 17.126608] omap2_mcspi_probe from platform_probe+0x6c/0xc8 [ 17.132308] r10:c1bf0f80 r9:c202f00d r8:00000065 r7:c30ec810 r6:c1bb1d00 r5:c30ec810 [ 17.140174] r4:00000000 [ 17.142717] platform_probe from really_probe+0x110/0x298 [ 17.148151] r7:c30ec810 r6:c1bb1d00 r5:c30ec810 r4:00000000 [ 17.153835] really_probe from __driver_probe_device+0x94/0xf4 [ 17.159704] r7:c30ec810 r6:c30ec810 r5:c1bb1d00 r4:c30ec810 [ 17.165387] __driver_probe_device from driver_probe_device+0x44/0xe0 [ 17.171865] r5:c1c51f28 r4:c1c51f24 [ 17.175455] driver_probe_device from __device_attach_driver+0x9c/0xc4 [ 17.182023] r9:c202f00d r8:c1b9ca1c r7:00000000 r6:c30ec810 r5:e0021e84 r4:c1bb1d00 [ 17.189800] __device_attach_driver from bus_for_each_drv+0x94/0xe4 [ 17.196108] r7:00000000 r6:c0a012e4 r5:e0021e84 r4:00000000 [ 17.201792] bus_for_each_drv from __device_attach+0x104/0x170 [ 17.207661] r6:00000001 r5:c30ec854 r4:c30ec810 [ 17.212299] __device_attach from device_initial_probe+0x1c/0x20 [ 17.218342] r6:c30ec810 r5:c1b9ccd0 r4:c30ec810 [ 17.222979] device_initial_probe from bus_probe_device+0x94/0x9c [ 17.229109] bus_probe_device from deferred_probe_work_func+0x8c/0xb8 [ 17.235594] r7:00000000 r6:c1b9ca30 r5:c1b9ca1c r4:c30ec810 [ 17.241277] deferred_probe_work_func from process_one_work+0x1e0/0x53c [ 17.247950] r9:c202f00d r8:00000000 r7:c202f000 r6:c2020a00 r5:c2156500 r4:c1b9ca5c [ 17.255728] process_one_work from worker_thread+0x238/0x4fc [ 17.261428] r10:c2020a00 r9:00000088 r8:c1a03d00 r7:c2020a1c r6:c2156518 r5:c2020a00 [ 17.269293] r4:c2156500 [ 17.271836] worker_thread from kthread+0x108/0x138 [ 17.276757] r10:00000000 r9:e0009e4c r8:c2160cc0 r7:c21a6a80 r6:c2156500 r5:c036aac8 [ 17.284624] r4:c2160900 [ 17.287168] kthread from ret_from_fork+0x14/0x2c [ 17.291904] Exception stack(0xe0021fb0 to 0xe0021ff8) [ 17.296982] 1fa0: 00000000 00000000 00000000 00000000 [ 17.305202] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 17.313420] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 17.320069] r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c037341c r4:c2160900 [ 17.328184] mscc-miim ocelot-miim0.2.auto: DMA mask not set