Re: [PATCH 9/9] x86: OLPC: add OLPC device-tree support

Grant Likely
2010-08-31T05:49:59Z

On Mon, Aug 30, 2010 at 12:49 PM, Andres Salomon <dilinger@queued.net> wrote:
> On Mon, 30 Aug 2010 12:14:57 -0600
> Grant Likely <grant.likely@secretlab.ca> wrote:
>
>> On Sun, Aug 29, 2010 at 10:07 PM, Andres Salomon
>> <dilinger@queued.net> wrote:
>> >
>> > Make use of PROC_DEVICETREE to export the tree, and sparc's
>> > PROMTREE code to call into OLPC's Open Firmware to build the tree.
>> >
>> > This also adds an init hook to proc_device_tree_init so that we can
>> > ensure the device tree has been built prior to the proc_root_init
>> > stuff attempting to populate /proc/device-tree.
>>
>> I'm not clear as to why this is needed.  I would expect OLPC platform
>> setup code would take care of extracting the device tree well before
>> the kernel gets to setting up the representation in /proc/device-tree.
>>
>> g.
>>
>
> For simplicity; the OLPC platform setup code runs very early during
> boot.  I preferred to keep that as minimal as possible, and defer
> device tree allocation until the x86 mm code has finished initializing
> (this skipping all the fun bootmem/etc work that'll be happening for
> x86 soon).
>
> Of course, once it's done initializing, one can either hardcode an
> olpc_init_devtree call at the end of x86's setup_arch, or we can add a
> generic hook for late devtree initialization right before proc
> populates /proc/device-tree.  I chose the latter, but it could easily
> be changed to the former if folks feel strongly about it.
>
> I would've normally just used an initcall for it, but the proc_devtree
> code runs prior to any of the initcall hooks.

Hmmm. I wonder if proc_devtree initialization could be deferred to an
initcall. That would make the problem go away.

g.