2006-02-25 08:55:49

by Dave Jones

[permalink] [raw]
Subject: Re: [PATCH] Fix topology.c location

> commit 9c869edac591977314323a4eaad5f7633fca684f
> tree 9455f4e8e78cd62f87b19dd7abe2c65ca23d9ceb
> parent ad329b1519c0091806046b0e49ab073ea590dc11
> author Zachary Amsden <[email protected]> Sat, 25 Feb 2006 05:04:27 -0800
> committer Linus Torvalds <[email protected]> Sat, 25 Feb 2006 06:31:39 -0800
>
> [PATCH] Fix topology.c location
>
> When compiling a non-default subarch, topology.c is missing from the kernel
> build. This causes builds with CONFIG_HOTPLUG_CPU to fail. In addition,
> on Intel processors with cpuid level > 4, it causes intel_cacheinfo.c to
> reference uninitialized data that should have been set up by the initcall
> in topology.c which calls register_cpu. This causes a kernel panic on boot
> on newer Intel processors. Moving topology.c to arch/i386/kernel fixes
> both of these problems.

This change breaks x86-64 compiles, as it uses the same file.

Signed-off-by: Dave Jones <[email protected]>

--- linux-2.6.15.noarch/arch/x86_64/kernel/Makefile~ 2006-02-25 03:29:04.000000000 -0500
+++ linux-2.6.15.noarch/arch/x86_64/kernel/Makefile 2006-02-25 03:29:35.000000000 -0500
@@ -45,7 +45,7 @@ CFLAGS_vsyscall.o := $(PROFILING) -g0

bootflag-y += ../../i386/kernel/bootflag.o
cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o
-topology-y += ../../i386/mach-default/topology.o
+topology-y += ../../i386/kernel/topology.o
microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o
intel_cacheinfo-y += ../../i386/kernel/cpu/intel_cacheinfo.o
quirks-y += ../../i386/kernel/quirks.o


2006-02-25 17:31:27

by Zachary Amsden

[permalink] [raw]
Subject: Re: [PATCH] Fix topology.c location

Dave Jones wrote:

>This change breaks x86-64 compiles, as it uses the same file.
>
>

Thanks for fixing that. Have we decided that file sharing of this sort
is a really bad idea yet? I still see early_printk and pci-direct.h
sharing remains. If this sharing really must go on, isn't there a less
ad-hoc way to do it? Or at least a mention in the file that "before you
modify, note this is shared by arch foo".

Zach

2006-02-25 18:08:45

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] Fix topology.c location

On Sat, 25 Feb 2006 09:28:38 -0800 Zachary Amsden wrote:

> Dave Jones wrote:
>
> >This change breaks x86-64 compiles, as it uses the same file.
> >
> >
>
> Thanks for fixing that. Have we decided that file sharing of this sort
> is a really bad idea yet? I still see early_printk and pci-direct.h
> sharing remains. If this sharing really must go on, isn't there a less
> ad-hoc way to do it? Or at least a mention in the file that "before you
> modify, note this is shared by arch foo".

I guess a note would be OK, but there are notes already in Makefile*.
oh, or in some .c file if it does #include another.c
or #include ../../arch/other/blah

For i386 and x86_64, currently almost any file could be shared, except for
the cpu-specific ones.

One hurdle to get over seems to be what would Andi accept.

---
~Randy