Re: [PATCH] x86/devicetree: add missing early_init_dt_setup_initrd_arch stub

From: Florian Fainelli
Date: Thu Jun 09 2011 - 04:09:11 EST


On Monday 06 June 2011 10:21:31 Grant Likely wrote:
> On Mon, Jun 06, 2011 at 10:15:49AM +0200, Florian Fainelli wrote:
> > From: Florian Fainelli <ffainelli@xxxxxxxxxx>
> >
> > This patch fixes the following build failure:
> >
> > drivers/built-in.o: In function `early_init_dt_check_for_initrd':
> > /home/florian/dev/kernel/x86/linux-2.6-x86/drivers/of/fdt.c:571:
> > undefined reference to `early_init_dt_setup_initrd_arch'
> > make: *** [.tmp_vmlinux1] Error 1
> >
> > which happens as soon as we enable initrd support on a x86 devicetree
> > platform such as Intel CE4100.
> >
> > Tested on a custom Intel CE4100 board.
> >
> > CC:stable@xxxxxxxxxx
> > Signed-off-by: Florian Fainelli <ffainelli@xxxxxxxxxx>
>
> Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx>

Grant, are you picking this patch to any of your tree?

>
> > ---
> > Grant,
> >
> > MIPS, PowerPC, Microblaze and now x86 all have the same way of
> > implementing this, would it rather make sense to get this merged to
> > generic devicetree functions and let this be overriden if needed?
>
> Probably, but I'm not going to tackle that problem just yet. Although
> if you want to investigate and propose a patch, then go for it. :-)

Allright, I will take a look at this.

>
> g.
>
> > Stable: this is a candidate for 2.6.39.2
> >
> > diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c
> > index 690bc84..9aeb78a 100644
> > --- a/arch/x86/kernel/devicetree.c
> > +++ b/arch/x86/kernel/devicetree.c
> > @@ -13,6 +13,7 @@
> >
> > #include <linux/slab.h>
> > #include <linux/pci.h>
> > #include <linux/of_pci.h>
> >
> > +#include <linux/initrd.h>
> >
> > #include <asm/hpet.h>
> > #include <asm/irq_controller.h>
> >
> > @@ -98,6 +99,16 @@ void * __init early_init_dt_alloc_memory_arch(u64
> > size, u64 align)
> >
> > return __alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS));
> >
> > }
> >
> > +#ifdef CONFIG_BLK_DEV_INITRD
> > +void __init early_init_dt_setup_initrd_arch(unsigned long start,
> > + unsigned long end)
> > +{
> > + initrd_start = (unsigned long)__va(start);
> > + initrd_end = (unsigned long)__va(end);
> > + initrd_below_start_ok = 1;
> > +}
> > +#endif
> > +
> >
> > void __init add_dtb(u64 data)
> > {
> >
> > initial_dtb = data + offsetof(struct setup_data, data);
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/