[PATCH] powerpc: populate the default bus with machine_arch_initcall

Rob Herring robh at kernel.org
Mon Aug 15 08:42:43 AEST 2016


On Sun, Aug 14, 2016 at 4:21 PM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> On Fri, 2016-08-12 at 14:30 -0500, Rob Herring wrote:
>>
>> > With the commit 44a7185c2ae6 ("of/platform: Add common method to
>> > populate default bus"), a default function is introduced to
>> > populate
>> > the default bus and this function is invoked at the
>> > arch_initcall_sync
>> > level. But a lot of ppc boards use machine_device_initcall() to
>> > populate the default bus. This means that the default populate
>> > function
>> > has higher priority and would override the arch specific population
>> > of
>> > the bus. The side effect is that some arch specific bus are not
>> > probed,
>> > then cause various malfunction due to the miss of some devices.
>> > Since
>> > it is very possible to introduce bugs if we simply change the
>> > initcall
>> > level for all these boards(about 30+). This just disable this
>> > default
>> > function for all the ppc boards.
>> >
>> > Signed-off-by: Kevin Hao <haokexin at gmail.com>
>> > ---
>> >  drivers/of/platform.c | 2 ++
>> >  1 file changed, 2 insertions(+)
>>
>> I've applied this one.
>
> Not fan of the hard #ifdef at all... it will make it hard to convert
> platforms one by one. Why not an arch_want_default_of_probe() or
> something like this which we can then plumb into ppc_md. ?

Yeah, I'm not either really. I didn't propose using IS_ENABLED here
either as it does add a needless initcall.

Do you have any idea which platforms are not broken and could be
switched over now. If not, I think we should just leave as is for 4.8
and make it per platform selectable for 4.9.

Rob


More information about the Linuxppc-dev mailing list