[BISECTED REGRESSION] v4.8-rc: DT/OCTEON driver probing broken

2016-08-16 Thread Aaro Koskinen
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

2016-08-29 Thread Rob Herring
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

2016-08-29 Thread Rob Herring
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

2016-08-29 Thread Rob Herring
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

2016-09-11 Thread Thorsten Leemhuis
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

2016-08-28 Thread Thorsten Leemhuis
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

2016-08-28 Thread Aaro Koskinen
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
> > 
>