Re: 2.5.8-dj1 : arch/i386/kernel/smpboot.c error

Adam Kropelin (akropel1@rochester.rr.com)
Wed, 17 Apr 2002 08:30:44 -0400


On Tue, Apr 16, 2002 at 09:59:08PM -0700, Martin J. Bligh wrote:
> xquad_portio is indeed only for CONFIG_MULTIQUAD. However, you
> shouldn't need the #ifdef's in the code to make this work -
> clustered_apic_mode isn't a variable at all, it's a magic
> trick that's actually 1 or 0 depending on CONFIG_MULTIQUAD.
>
> Look at 2.5.8 virgin, it has the same code.

Not quite.

As I said, -dj has an optimization in asm-i386/io.o:

> #ifdef CONFIG_MULTIQUAD
> extern void *xquad_portio; /* Where the IO area was mapped */
> #else
> #define xquad_portio (0)
> #endif

So the preprocessed smpboot.c contains gems like:

> void *(0) = ((void *)0);

...and...

> (0) = ioremap (0xfe400000,
> numnodes * 0x80000);

Even though clustered_apic_mode is 0, the compiler still complains
about the second one and the first one doesn't depend on
clustered_apic_mode at all.

I don't like spreading around more #ifdef's, but the spirit of the
changes seemed to be to get rid of the declaration of xquad_portio
when !CONFIG_MULTIQUAD. Suggestions for improvement welcome.

--Adam

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/