Re: [patch] s390: setup.c cleanup + build fix

From: Andrew Morton
Date: Sat Jun 24 2006 - 02:14:30 EST


On Fri, 23 Jun 2006 15:31:22 +0200
Heiko Carstens <heiko.carstens@xxxxxxxxxx> wrote:

> From: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
>
> Cleanup & fix 31 bit compilation:
>
> CC arch/s390/kernel/setup.o
> arch/s390/kernel/setup.c:83: error: initializer element is not computable at
> load time
> arch/s390/kernel/setup.c:83: error: (near initialization for
> 'code_resource.start')
> Not sure which patch in the -mm tree breaks this, but since this can be
> considered a cleanup it can be merged anyway.
>

That's strange.

> /*
> - * Setup options
> - */
> -extern int _text,_etext, _edata, _end;
> -
> -/*
> * This is set up by the setup-routine at boot-time
> * for S390 need to find out, what we have to setup
> * using address 0x10400 ...
> @@ -80,15 +76,11 @@ extern int _text,_etext, _edata, _end;
>
> static struct resource code_resource = {
> .name = "Kernel code",
> - .start = (unsigned long) &_text,
> - .end = (unsigned long) &_etext - 1,
> .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
> };
>
> static struct resource data_resource = {
> .name = "Kernel data",
> - .start = (unsigned long) &_etext,
> - .end = (unsigned long) &_edata - 1,
> .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
> };
>
> @@ -422,6 +414,11 @@ setup_resources(void)
> struct resource *res;
> int i;
>
> + code_resource.start = (unsigned long) &_text;
> + code_resource.end = (unsigned long) &_etext - 1;
> + data_resource.start = (unsigned long) &_etext;
> + data_resource.end = (unsigned long) &_edata - 1;
> +
> for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) {
> res = alloc_bootmem_low(sizeof(struct resource));
> res->flags = IORESOURCE_BUSY | IORESOURCE_MEM;

The linker should be able to handle all that. I wonder why it didn't.

And it works for me. What is "31 bit compilation"?
-
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/