[BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
Hi, Commit 44a7185c2ae6 ("of/platform: Add common method to populate default bus") added new arch_initcall of_platform_default_populate_init() that will be called before device_initcall octeon_publish_devices(). Now the of_platform_bus_probe() called in octeon_publish_devices() is apparently doing nothing: [ 52.331353] calling octeon_publish_devices+0x0/0x14 @ 1 [ 52.331358] OF: of_platform_bus_probe() [ 52.331362] OF: starting at: / [ 52.331378] OF: of_platform_bus_create() - skipping /soc@0, already populated [ 52.331394] initcall octeon_publish_devices+0x0/0x14 returned 0 after 29 usecs This also means that USB etc. won't get probed. Any ideas what would be the proper fix for this? Changing octeon_publish_devices() to arch_initcall seems to work but that may be a bit hackish... Also, there might be also other MIPS boards affected (arch/mips/netlogic/xlp/dt.c, arch/mips/mti-malta/malta-dt.c). A.
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
On Tue, Aug 16, 2016 at 10:00 AM, Aaro Koskinen wrote: > Hi, > > Commit 44a7185c2ae6 ("of/platform: Add common method to populate default > bus") added new arch_initcall of_platform_default_populate_init() that > will be called before device_initcall octeon_publish_devices(). Now the > of_platform_bus_probe() called in octeon_publish_devices() is apparently > doing nothing: > > [ 52.331353] calling octeon_publish_devices+0x0/0x14 @ 1 > [ 52.331358] OF: of_platform_bus_probe() > [ 52.331362] OF: starting at: / > [ 52.331378] OF: of_platform_bus_create() - skipping /soc@0, already > populated > [ 52.331394] initcall octeon_publish_devices+0x0/0x14 returned 0 after 29 > usecs > > This also means that USB etc. won't get probed. > > Any ideas what would be the proper fix for this? Changing > octeon_publish_devices() to arch_initcall seems to work but that may be > a bit hackish... Also, there might be also other MIPS boards affected > (arch/mips/netlogic/xlp/dt.c, arch/mips/mti-malta/malta-dt.c). Can you try reverting this hunk. I don't think it should be needed and it is preventing /soc@0 children from being probed. If things still don't work, then it should purely be a probe ordering problem. I have some better fixes in mind, but not for 4.8. So if this doesn't work, then the same fix as PPC is fine. diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 16e8daf..c559ef8 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -363,6 +363,12 @@ static int of_platform_bus_create(struct device_node *bus, return 0; } + if (of_node_check_flag(bus, OF_POPULATED_BUS)) { + pr_debug("%s() - skipping %s, already populated\n", + __func__, bus->full_name); + return 0; + } + auxdata = of_dev_lookup(lookup, bus); if (auxdata) { bus_id = auxdata->name; Rob
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
On Mon, Aug 29, 2016 at 12:36 PM, Rob Herring wrote: > On Tue, Aug 16, 2016 at 10:00 AM, Aaro Koskinen > wrote: >> Hi, >> >> Commit 44a7185c2ae6 ("of/platform: Add common method to populate default >> bus") added new arch_initcall of_platform_default_populate_init() that >> will be called before device_initcall octeon_publish_devices(). Now the >> of_platform_bus_probe() called in octeon_publish_devices() is apparently >> doing nothing: >> >> [ 52.331353] calling octeon_publish_devices+0x0/0x14 @ 1 >> [ 52.331358] OF: of_platform_bus_probe() >> [ 52.331362] OF: starting at: / >> [ 52.331378] OF: of_platform_bus_create() - skipping /soc@0, already >> populated >> [ 52.331394] initcall octeon_publish_devices+0x0/0x14 returned 0 after 29 >> usecs >> >> This also means that USB etc. won't get probed. >> >> Any ideas what would be the proper fix for this? Changing >> octeon_publish_devices() to arch_initcall seems to work but that may be >> a bit hackish... Also, there might be also other MIPS boards affected >> (arch/mips/netlogic/xlp/dt.c, arch/mips/mti-malta/malta-dt.c). > > Can you try reverting this hunk. I don't think it should be needed and > it is preventing /soc@0 children from being probed. If things still > don't work, then it should purely be a probe ordering problem. I have > some better fixes in mind, but not for 4.8. So if this doesn't work, > then the same fix as PPC is fine. Nevermind, reverting this hunk is not enough. Rob
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
On Sun, Aug 28, 2016 at 7:22 AM, Aaro Koskinen wrote: > Hi, > > On Sun, Aug 28, 2016 at 12:34:06PM +0200, Thorsten Leemhuis wrote: >> Lo! Kefeng, below report made it to the list of regression for 4.8, but >> afaics nothing happened after the initial report. Is there maybe some >> reason why it shouldn't be on the list of regressions at all? Or was the >> problem discussed elsewhere? Or is it even fixed already? I noticed >> https://git.kernel.org/torvalds/c/fc520f8b4f (of/platform: disable the >> of_platform_default_populate_init() for all the ppc board), but that >> change is PPC specific. > > There is a fix proposal here: > > https://patchwork.linux-mips.org/patch/14041/ > > There is still few other boards remaining that use of_platform_bus_probe() > from device_initcall, but who knows, maybe they are not affected. > > arch/microblaze/kernel/platform.c xlnx,compound is going to fail to probe. I'm adding this to the default. > arch/mips/mti-malta/malta-dt.c This should be fine. It does probe for "isa", but nothing in mainline is using that. We can add it to the default when it does. > arch/mips/netlogic/xlp/dt.c Should be okay with default. > arch/x86/platform/olpc/olpc_dt.c This one needs fixing. Rob
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
Hi! On 30.08.2016 00:39, Rob Herring wrote: > On Sun, Aug 28, 2016 at 7:22 AM, Aaro Koskinen wrote: >> On Sun, Aug 28, 2016 at 12:34:06PM +0200, Thorsten Leemhuis wrote: >> There is a fix proposal here: >> https://patchwork.linux-mips.org/patch/14041/ >> There is still few other boards remaining that use of_platform_bus_probe() >> from device_initcall, but who knows, maybe they are not affected. >> arch/microblaze/kernel/platform.c > xlnx,compound is going to fail to probe. I'm adding this to the default. > >> arch/mips/mti-malta/malta-dt.c > This should be fine. It does probe for "isa", but nothing in mainline > is using that. We can add it to the default when it does. > >> arch/mips/netlogic/xlp/dt.c > Should be okay with default. > >> arch/x86/platform/olpc/olpc_dt.c > This one needs fixing. Rob, did anything happen on this front? This issue is still on the list of regression for 4.8, and it seems to me nothing happened in the past ten days -- or is this discussed somewhere else?. Ciao, Thorsten
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
Lo! Kefeng, below report made it to the list of regression for 4.8, but afaics nothing happened after the initial report. Is there maybe some reason why it shouldn't be on the list of regressions at all? Or was the problem discussed elsewhere? Or is it even fixed already? I noticed https://git.kernel.org/torvalds/c/fc520f8b4f (of/platform: disable the of_platform_default_populate_init() for all the ppc board), but that change is PPC specific. Ciao, Thorsten On 16.08.2016 17:00, Aaro Koskinen wrote: > Hi, > > Commit 44a7185c2ae6 ("of/platform: Add common method to populate default > bus") added new arch_initcall of_platform_default_populate_init() that > will be called before device_initcall octeon_publish_devices(). Now the > of_platform_bus_probe() called in octeon_publish_devices() is apparently > doing nothing: > > [ 52.331353] calling octeon_publish_devices+0x0/0x14 @ 1 > [ 52.331358] OF: of_platform_bus_probe() > [ 52.331362] OF: starting at: / > [ 52.331378] OF: of_platform_bus_create() - skipping /soc@0, already > populated > [ 52.331394] initcall octeon_publish_devices+0x0/0x14 returned 0 after 29 > usecs > > This also means that USB etc. won't get probed. > > Any ideas what would be the proper fix for this? Changing > octeon_publish_devices() to arch_initcall seems to work but that may be > a bit hackish... Also, there might be also other MIPS boards affected > (arch/mips/netlogic/xlp/dt.c, arch/mips/mti-malta/malta-dt.c). > > A. > > http://news.gmane.org/find-root.php?message_id=20160816150056.GD18731%40ak-desktop.emea.nsn-net.net > > http://mid.gmane.org/20160816150056.GD18731%40ak-desktop.emea.nsn-net.net >
Re: [BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken
Hi, On Sun, Aug 28, 2016 at 12:34:06PM +0200, Thorsten Leemhuis wrote: > Lo! Kefeng, below report made it to the list of regression for 4.8, but > afaics nothing happened after the initial report. Is there maybe some > reason why it shouldn't be on the list of regressions at all? Or was the > problem discussed elsewhere? Or is it even fixed already? I noticed > https://git.kernel.org/torvalds/c/fc520f8b4f (of/platform: disable the > of_platform_default_populate_init() for all the ppc board), but that > change is PPC specific. There is a fix proposal here: https://patchwork.linux-mips.org/patch/14041/ There is still few other boards remaining that use of_platform_bus_probe() from device_initcall, but who knows, maybe they are not affected. arch/microblaze/kernel/platform.c arch/mips/mti-malta/malta-dt.c arch/mips/netlogic/xlp/dt.c arch/x86/platform/olpc/olpc_dt.c A. > On 16.08.2016 17:00, Aaro Koskinen wrote: > > Hi, > > > > Commit 44a7185c2ae6 ("of/platform: Add common method to populate default > > bus") added new arch_initcall of_platform_default_populate_init() that > > will be called before device_initcall octeon_publish_devices(). Now the > > of_platform_bus_probe() called in octeon_publish_devices() is apparently > > doing nothing: > > > > [ 52.331353] calling octeon_publish_devices+0x0/0x14 @ 1 > > [ 52.331358] OF: of_platform_bus_probe() > > [ 52.331362] OF: starting at: / > > [ 52.331378] OF: of_platform_bus_create() - skipping /soc@0, already > > populated > > [ 52.331394] initcall octeon_publish_devices+0x0/0x14 returned 0 after 29 > > usecs > > > > This also means that USB etc. won't get probed. > > > > Any ideas what would be the proper fix for this? Changing > > octeon_publish_devices() to arch_initcall seems to work but that may be > > a bit hackish... Also, there might be also other MIPS boards affected > > (arch/mips/netlogic/xlp/dt.c, arch/mips/mti-malta/malta-dt.c). > > > > A. > > > > http://news.gmane.org/find-root.php?message_id=20160816150056.GD18731%40ak-desktop.emea.nsn-net.net > > > > http://mid.gmane.org/20160816150056.GD18731%40ak-desktop.emea.nsn-net.net > > >