From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: Colin Foster <colin.foster@in-advantage.com>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Terry Bowman <terry.bowman@amd.com>,
Wolfram Sang <wsa@kernel.org>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Steen Hegelund <Steen.Hegelund@microchip.com>,
Lars Povlsen <lars.povlsen@microchip.com>,
Linus Walleij <linus.walleij@linaro.org>,
Russell King <linux@armlinux.org.uk>,
Heiner Kallweit <hkallweit1@gmail.com>,
Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <edumazet@google.com>,
"David S. Miller" <davem@davemloft.net>,
Florian Fainelli <f.fainelli@gmail.com>,
Vivien Didelot <vivien.didelot@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
"UNGLinuxDriver@microchip.com" <UNGLinuxDriver@microchip.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Lee Jones <lee.jones@linaro.org>
Subject: Re: [RFC v8 net-next 00/16] add support for VSC7512 control over SPI
Date: Tue, 10 May 2022 16:18:50 +0000 [thread overview]
Message-ID: <20220510161849.w5kbicqgbxnodfwt@skbuf> (raw)
In-Reply-To: <20220510025748.GA2316428@euler>
On Mon, May 09, 2022 at 07:57:48PM -0700, Colin Foster wrote:
> 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.755335] of_dma_configure_id from platform_dma_configure+0x2c/0x38
> [ 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.789913] __driver_probe_device from driver_probe_device+0x44/0xe0
> [ 16.799980] driver_probe_device from __device_attach_driver+0x9c/0xc4
> [ 16.814326] __device_attach_driver from bus_for_each_drv+0x94/0xe4
> [ 16.826319] bus_for_each_drv from __device_attach+0x104/0x170
> [ 16.836827] __device_attach from device_initial_probe+0x1c/0x20
> [ 16.847507] device_initial_probe from bus_probe_device+0x94/0x9c
> [ 16.853637] bus_probe_device from device_add+0x3ec/0x8b4
> [ 16.864756] device_add from platform_device_add+0x100/0x210
> [ 16.880864] platform_device_add from mfd_add_devices+0x308/0x62c
>
> platform_device_add sets up pdev->bus = &platform_bus_type;
This part is clear. MFD cells are platform devices which have an
of_node, so platform_dma_configure() calls of_dma_configure_id().
> That assignment looks to date back to the before times... Now you have
> me curious. And a little scared :-)
>
> [ 16.898465] mfd_add_devices from devm_mfd_add_devices+0x80/0xc0
> [ 16.914924] devm_mfd_add_devices from ocelot_core_init+0x40/0x6c
> [ 16.927790] ocelot_core_init from ocelot_spi_probe+0xf4/0x188
> [ 16.937251] ocelot_spi_probe from spi_probe+0x94/0xb8
> [ 16.948118] spi_probe from really_probe+0x110/0x298
> [ 16.958800] really_probe from __driver_probe_device+0x94/0xf4
> [ 16.970354] __driver_probe_device from driver_probe_device+0x44/0xe0
> [ 16.980422] driver_probe_device from __device_attach_driver+0x9c/0xc4
> [ 16.994768] __device_attach_driver from bus_for_each_drv+0x94/0xe4
> [ 17.006762] bus_for_each_drv from __device_attach+0x104/0x170
> [ 17.017269] __device_attach from device_initial_probe+0x1c/0x20
> [ 17.027948] device_initial_probe from bus_probe_device+0x94/0x9c
> [ 17.034077] bus_probe_device from device_add+0x3ec/0x8b4
> [ 17.045197] device_add from __spi_add_device+0x7c/0x10c
> [ 17.060959] __spi_add_device from spi_add_device+0x48/0x78
> [ 17.072252] spi_add_device from of_register_spi_device+0x258/0x390
> [ 17.082147] of_register_spi_device from spi_register_controller+0x26c/0x6d8
> [ 17.095970] spi_register_controller from devm_spi_register_controller+0x24/0x60
> [ 17.113822] devm_spi_register_controller from omap2_mcspi_probe+0x4c8/0x574
> [ 17.126608] omap2_mcspi_probe from platform_probe+0x6c/0xc8
> [ 17.142717] platform_probe from really_probe+0x110/0x298
> [ 17.153835] really_probe from __driver_probe_device+0x94/0xf4
> [ 17.165387] __driver_probe_device from driver_probe_device+0x44/0xe0
> [ 17.175455] driver_probe_device from __device_attach_driver+0x9c/0xc4
> [ 17.189800] __device_attach_driver from bus_for_each_drv+0x94/0xe4
> [ 17.201792] bus_for_each_drv from __device_attach+0x104/0x170
> [ 17.212299] __device_attach from device_initial_probe+0x1c/0x20
> [ 17.222979] device_initial_probe from bus_probe_device+0x94/0x9c
> [ 17.229109] bus_probe_device from deferred_probe_work_func+0x8c/0xb8
> [ 17.241277] deferred_probe_work_func from process_one_work+0x1e0/0x53c
> [ 17.255728] process_one_work from worker_thread+0x238/0x4fc
> [ 17.271836] worker_thread from kthread+0x108/0x138
> [ 17.328184] mscc-miim ocelot-miim0.2.auto: DMA mask not set
Unfortunately I don't have any hardware to test, but I think what
happens is:
mfd_add_device()
{
calls platform_device_alloc()
calls setup_pdev_dma_masks()
sets up the default pdev->dev.dma_mask pointer
overwrites pdev->dev.dma_mask with parent->dma_mask;
// your parent->dma_mask is NULL
calls platform_device_add()
...
calls of_dma_configure_id
complains that pdev->dev.dma_mask is NULL (i.e.
the bus hasn't bothered setting up a default DMA
mask, which in fact it did)
}
I don't have enough background regarding the justification for commit
b018e1361bad ("mfd: core: Copy DMA mask and params from parent"), but it
might be detrimential in some cases?
The warning is printed since the slightly unrelated commit 4d8bde883bfb
("OF: Don't set default coherent DMA mask").
next prev parent reply other threads:[~2022-05-10 16:19 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-08 18:52 [RFC v8 net-next 00/16] add support for VSC7512 control over SPI Colin Foster
2022-05-08 18:52 ` [RFC v8 net-next 01/16] pinctrl: ocelot: allow pinctrl-ocelot to be loaded as a module Colin Foster
2022-05-09 10:05 ` Vladimir Oltean
2022-05-08 18:52 ` [RFC v8 net-next 02/16] pinctrl: microchip-sgpio: allow sgpio driver to be used " Colin Foster
2022-05-09 10:05 ` Vladimir Oltean
2022-05-08 18:53 ` [RFC v8 net-next 03/16] net: ocelot: add interface to get regmaps when exernally controlled Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 04/16] net: mdio: mscc-miim: add ability to be used in a non-mmio configuration Colin Foster
2022-05-08 21:14 ` Andy Shevchenko
2022-05-08 18:53 ` [RFC v8 net-next 05/16] pinctrl: ocelot: " Colin Foster
2022-05-09 8:37 ` Andy Shevchenko
2022-05-08 18:53 ` [RFC v8 net-next 06/16] pinctrl: microchip-sgpio: " Colin Foster
2022-05-09 8:44 ` Andy Shevchenko
2022-05-09 22:19 ` Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 07/16] resource: add define macro for register address resources Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 08/16] mfd: ocelot: add support for the vsc7512 chip via spi Colin Foster
2022-05-09 9:02 ` Andy Shevchenko
2022-05-09 23:15 ` Colin Foster
2022-08-19 16:50 ` Vladimir Oltean
2022-05-09 10:52 ` Vladimir Oltean
2022-05-09 23:49 ` Colin Foster
2022-05-09 17:20 ` Vladimir Oltean
2022-05-10 0:30 ` Colin Foster
2022-05-10 15:32 ` Lee Jones
2022-05-10 16:13 ` Colin Foster
2022-05-12 9:49 ` Lee Jones
2022-05-12 15:03 ` Colin Foster
2022-05-10 15:58 ` Vladimir Oltean
2022-05-10 16:02 ` Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 09/16] net: mscc: ocelot: expose ocelot wm functions Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 10/16] net: dsa: felix: add configurable device quirks Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 11/16] net: mscc: ocelot: expose regfield definition to be used by other drivers Colin Foster
2022-05-09 10:56 ` Vladimir Oltean
2022-05-10 0:05 ` Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 12/16] net: mscc: ocelot: expose stats layout " Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 13/16] net: mscc: ocelot: expose vcap_props structure Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 14/16] net: dsa: ocelot: add external ocelot switch control Colin Foster
2022-05-09 16:27 ` Vladimir Oltean
2022-05-10 0:02 ` Colin Foster
2022-05-08 18:53 ` [RFC v8 net-next 15/16] net: dsa: felix: add phylink_get_caps capability Colin Foster
2022-05-09 10:34 ` Vladimir Oltean
2022-05-10 0:23 ` Colin Foster
2022-05-09 17:30 ` Vladimir Oltean
2022-05-10 0:55 ` Colin Foster
2022-05-09 17:58 ` Vladimir Oltean
2022-09-09 18:33 ` Colin Foster
2022-09-09 19:20 ` Russell King (Oracle)
2022-09-09 19:30 ` Colin Foster
2022-09-11 0:44 ` Vladimir Oltean
2022-05-08 18:53 ` [RFC v8 net-next 16/16] net: dsa: ocelot: utilize phylink_generic_validate Colin Foster
2022-05-09 17:13 ` [RFC v8 net-next 00/16] add support for VSC7512 control over SPI Vladimir Oltean
2022-05-10 1:43 ` Colin Foster
2022-05-10 2:57 ` Colin Foster
2022-05-10 16:18 ` Vladimir Oltean [this message]
2022-05-14 22:00 ` Colin Foster
2022-05-19 14:44 ` Vladimir Oltean
2022-05-19 16:15 ` Colin Foster
2022-05-19 17:09 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220510161849.w5kbicqgbxnodfwt@skbuf \
--to=vladimir.oltean@nxp.com \
--cc=Steen.Hegelund@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrew@lunn.ch \
--cc=andy.shevchenko@gmail.com \
--cc=claudiu.manoil@nxp.com \
--cc=colin.foster@in-advantage.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=lars.povlsen@microchip.com \
--cc=lee.jones@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=terry.bowman@amd.com \
--cc=vivien.didelot@gmail.com \
--cc=wsa@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox