Re: [PATCH 7/8] Implement smp_processor_id() with the PDA.

Ian Campbell
2006-08-31T21:34:57Z

On Thu, 2006-08-31 at 12:10 -0700, Jeremy Fitzhardinge wrote:
> Ian Campbell wrote:
> > smp_processor_id() is defined for !SMP in include/linux/smp.h, I don't
> > know if it would be appropriate to add early_smp_processor_id() there
> > since it seems i386 specific. asm/smp.h isn't included by linux/smp.h
> > when !SMP but you could add an explicit include to common.c I suppose.
> >
> The simple solution is to just define a !SMP version of
> early_smp_processor_id(). It's i386 specific, but that's the only arch
> that uses it:

Are you sure that works? When I tried it didn't. I think because
asm/smp.h isn't included by linux/smp.h for !SMP.

I needed the below to make it work, but including linux/smp.h and
asm/smp.h in the same file smells a bit fishy to me... Probably
acceptable for now if you are thinking of redoing SMP processor bringup
anyway.

diff -r fa530c593b97 arch/i386/kernel/cpu/common.c
--- a/arch/i386/kernel/cpu/common.c Thu Aug 31 22:28:11 2006 +0100
+++ b/arch/i386/kernel/cpu/common.c Thu Aug 31 22:33:08 2006 +0100
@@ -13,6 +13,7 @@
#include <asm/mmu_context.h>
#include <asm/mtrr.h>
#include <asm/mce.h>
+#include <asm/smp.h>
#ifdef CONFIG_X86_LOCAL_APIC
#include <asm/mpspec.h>
#include <asm/apic.h>

Ian.