Subject: Re: [PATCH 15/19] bootwrapper: Add initrd information to the device tree in ft_finalize().

From: David Gibson <[email-masked]>
Date: Sat, 10 Feb 2007 11:37:49 +1100

On Fri, Feb 09, 2007 at 04:02:07PM -0700, Mark A. Greer wrote:
> On Wed, Feb 07, 2007 at 05:01:40PM -0600, Scott Wood wrote:
> 
> Sorry for being so slow on this Scott.
> 
> <snip>
> 
> > diff --git a/arch/powerpc/boot/flatdevtree_misc.c b/arch/powerpc/boot/flatdevtree_misc.c
> > index 04da38f..39fa010 100644
> > --- a/arch/powerpc/boot/flatdevtree_misc.c
> > +++ b/arch/powerpc/boot/flatdevtree_misc.c
> > @@ -33,8 +33,20 @@ static int ft_setprop(const void *phandl
> >  	return ft_set_prop(&cxt, phandle, propname, buf, buflen);
> >  }
> >  
> > -static unsigned long ft_finalize(void)
> > +unsigned long ft_finalize(void)
> 
> This is unnecessary.  There is already global access from
> dt_ops.finalize.
> 
> >  {
> > +	unsigned long initrd_end = initrd.addr + initrd.size;
> > +	void *devp;
> > +
> > +	if (initrd.size && (devp = finddevice("/chosen"))) {
> > +		setprop(devp, "linux,initrd-start", &initrd.addr,
> > +		        sizeof(initrd.addr));
> > +		setprop(devp, "linux,initrd-end", &initrd_end,
> > +		        sizeof(initrd_end));
> > +
> > +		ft_add_rsvmap(&cxt, initrd.addr, initrd.size);
> > +	}
> > +
> 
> IMHO, this is a very unnatural place to put this code.
> It really belongs in main.c.  That's where all the rest
> of the code that accesses initrd.* is.

Agreed.  I have a couple of pending patches that do this in a more
sensible place.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson