RE: x86/non-x86: percpu, node ids, apic ids x86.git fixup

Luck, Tony
2008-01-30T19:33:53Z

> I'm having trouble replicating this error. With the latest linux-2.6.git
> plus the patch I just sent, I get the following errors:
>
> drivers/input/mouse/psmouse-base.c:45: error: __param_proto causes a section type conflict
> drivers/md/md.c:5881: error: __param_start_ro causes a section type conflict

Weird. psmouse-base.c builds ok for me. Perhaps there is a compiler
version difference? I'm running a rather old 3.4.6 that came with
my RHEL 4.5 release.

> (plenty of warnings too, but no vmlinux)
New section mismatch checks are complaining about lots of stuff in this
post 2.6.24 world. There are a couple of dozen other warnings in a
"normal" build.

> I copied arch/ia64/configs/tiger_defconfig to .config, ran menuconfig to
> turn off SMP and built with this line

Yup ... my script is a little different. It uses
$ sed -e '/CONFIG_SMP/d' arch/ia64/configs/tiger_defconfig > .config
$ make oldconfig

But the net effect should be equivalent.

> #ifdef HAVE_MODEL_SMALL_ATTRIBUTE
> # define PER_CPU_ATTRIBUTES __attribute__((__model__ (__small__)))
> #endif
>
> This is only defined for !__ASSEMBLY__

Some place in there. The CONFIG_SMP=n path in ia64 makes quite radical
changes ... rather than putting all the per-cpu stuff into the top 64K
of address space and providing a per-cpu TLB mapping for that range to a
different physical address ... it just makes all the per-cpu stuff link
as ordinary variables in .data. The error messages indicate that some of
the new code is unaware of this.

-Tony