Re: [PATCH 3/6] h8300 setup.c initrd support fix

From: Andrew Morton
Date: Sat Feb 16 2008 - 23:55:30 EST


On Sat, 16 Feb 2008 23:39:09 -0500 Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx> wrote:

> At Fri, 15 Feb 2008 22:29:49 -0800,
> Andrew Morton wrote:
> >
> > On Sat, 16 Feb 2008 01:13:37 -0500 Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > > initrd setting fix.
> > >
> > > arch/h8300/kernel/setup.c | 5 +++--
> > > 1 files changed, 3 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c
> > > index b1f25c2..75712ec 100644
> > > --- a/arch/h8300/kernel/setup.c
> > > +++ b/arch/h8300/kernel/setup.c
> > > @@ -57,6 +57,7 @@ extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
> > > extern int _ramstart, _ramend;
> > > extern char _target_name[];
> > > extern void h8300_gpio_init(void);
> > > +extern void *initrd_start, *initrd_end;
> > >
> > > #if (defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)) \
> > > && defined(CONFIG_GDB_MAGICPRINT)
> > > @@ -99,8 +100,8 @@ void __init setup_arch(char **cmdline_p)
> > > /* allow for ROMFS on the end of the kernel */
> > > if (memcmp((void *)memory_start, "-rom1fs-", 8) == 0) {
> > > #if defined(CONFIG_BLK_DEV_INITRD)
> > > - initrd_start = memory_start;
> > > - initrd_end = memory_start += be32_to_cpu(((unsigned long *) (memory_start))[2]);
> > > + initrd_start = (void *)memory_start;
> > > + initrd_end = (void *)(memory_start += be32_to_cpu(((unsigned long *) (memory_start))[2]));
> > > #else
> > > memory_start += be32_to_cpu(((unsigned long *) memory_start)[2]);
> > > #endif
> >
> > But include/linux/initrd.h declares:
> >
> > extern unsigned long initrd_start, initrd_end;
> >
>
> fix it.

I assume this new patch is an addition to the previous one quoted above?

> Signed-off-by: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
>
> arch/h8300/kernel/setup.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c
> index 75712ec..4dd744f 100644
> --- a/arch/h8300/kernel/setup.c
> +++ b/arch/h8300/kernel/setup.c
> @@ -30,6 +30,7 @@
> #include <linux/bootmem.h>
> #include <linux/seq_file.h>
> #include <linux/init.h>
> +#include <linux/initrd.h>
>
> #include <asm/setup.h>
> #include <asm/irq.h>
> @@ -57,7 +58,6 @@ extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
> extern int _ramstart, _ramend;
> extern char _target_name[];
> extern void h8300_gpio_init(void);
> -extern void *initrd_start, *initrd_end;
>
> #if (defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)) \
> && defined(CONFIG_GDB_MAGICPRINT)

If so then surely it generated a warning when assigning a void* to an
unsigned long.

So please send a complete new fully tested patch. Please also include a
changelog which describes what is being fixed, and how it is fixed. The
text "initrd setting fix." and "fit it" is not sufficient - it doesn't
tell us what was wrong with the old code, nor how the change improved it.

Thanks.
--
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/