2011-06-06 08:11:41

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH] x86/devicetree: add missing early_init_dt_setup_initrd_arch stub

From: Florian Fainelli <[email protected]>

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:[email protected]
Signed-off-by: Florian Fainelli <[email protected]>
---
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?

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);
--
1.7.4.1


2011-06-06 08:21:33

by Grant Likely

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

On Mon, Jun 06, 2011 at 10:15:49AM +0200, Florian Fainelli wrote:
> From: Florian Fainelli <[email protected]>
>
> 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:[email protected]
> Signed-off-by: Florian Fainelli <[email protected]>

Acked-by: Grant Likely <[email protected]>

> ---
> 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. :-)

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);
> --
> 1.7.4.1
>

2011-06-09 08:09:00

by Florian Fainelli

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

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 <[email protected]>
> >
> > 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:[email protected]
> > Signed-off-by: Florian Fainelli <[email protected]>
>
> Acked-by: Grant Likely <[email protected]>

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 [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2011-06-09 13:23:20

by Grant Likely

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

On Thursday, June 9, 2011, Florian Fainelli <[email protected]> wrote:
> 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 <[email protected]>
>> >
>> > 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:[email protected]
>> > Signed-off-by: Florian Fainelli <[email protected]>
>>
>> Acked-by: Grant Likely <[email protected]>
>
> Grant, are you picking this patch to any of your tree?

No. This is x86 stuff and should go via the tip tree.

g.

>
>>
>> > ---
>> > 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 [email protected]
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at ?http://www.tux.org/lkml/
>

--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

2011-06-09 13:43:29

by Florian Fainelli

[permalink] [raw]
Subject: [tip:x86/urgent] x86: devicetree: Add missing early_init_dt_setup_initrd_arch stub

Commit-ID: 977cb76d52e7aa040e18a84b29fe6fd80d79319b
Gitweb: http://git.kernel.org/tip/977cb76d52e7aa040e18a84b29fe6fd80d79319b
Author: Florian Fainelli <[email protected]>
AuthorDate: Mon, 6 Jun 2011 10:15:49 +0200
Committer: Thomas Gleixner <[email protected]>
CommitDate: Thu, 9 Jun 2011 15:39:43 +0200

x86: devicetree: Add missing early_init_dt_setup_initrd_arch stub

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.

Signed-off-by: Florian Fainelli <[email protected]>
Acked-by: Grant Likely <[email protected]>
Cc: Maxime Bizon <[email protected]>
Acked-by: Sebastian Andrzej Siewior <[email protected]>
Cc: [email protected] # 2.6.39
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
---
arch/x86/kernel/devicetree.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)

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);