From: William Lee Irwin III <wli@holomorphy.com>

While sweeping the APIC code two points were missed.  The first is getting
the definition of BAD_APICID available to
include/asm-i386/mach-default/mach_apic.h by #including the right header,
and the second is UP local APIC without UP IO-APIC linking in
get_broadcast_physid().

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/i386/kernel/apic.c                   |   11 +++++++++++
 25-akpm/arch/i386/kernel/io_apic.c                |   11 -----------
 25-akpm/include/asm-i386/mach-default/mach_apic.h |    1 +
 3 files changed, 12 insertions(+), 11 deletions(-)

diff -puN arch/i386/kernel/apic.c~apic-make-mach_default-compile-again arch/i386/kernel/apic.c
--- 25/arch/i386/kernel/apic.c~apic-make-mach_default-compile-again	Wed Jun  9 14:46:02 2004
+++ 25-akpm/arch/i386/kernel/apic.c	Wed Jun  9 14:46:02 2004
@@ -80,6 +80,17 @@ void enable_NMI_through_LVT0 (void * dum
 	apic_write_around(APIC_LVT0, v);
 }
 
+int get_physical_broadcast(void)
+{
+	unsigned int lvr, version;
+	lvr = apic_read(APIC_LVR);
+	version = GET_APIC_VERSION(lvr);
+	if (version >= 0x14)
+		return 0xff;
+	else
+		return 0xf;
+}
+
 int get_maxlvt(void)
 {
 	unsigned int v, ver, maxlvt;
diff -puN arch/i386/kernel/io_apic.c~apic-make-mach_default-compile-again arch/i386/kernel/io_apic.c
--- 25/arch/i386/kernel/io_apic.c~apic-make-mach_default-compile-again	Wed Jun  9 14:46:02 2004
+++ 25-akpm/arch/i386/kernel/io_apic.c	Wed Jun  9 14:46:02 2004
@@ -722,17 +722,6 @@ static int __init ioapic_pirq_setup(char
 
 __setup("pirq=", ioapic_pirq_setup);
 
-int get_physical_broadcast(void)
-{
-	unsigned int lvr, version;
-	lvr = apic_read(APIC_LVR);
-	version = GET_APIC_VERSION(lvr);
-	if (version >= 0x14)
-		return 0xff;
-	else
-		return 0xf;
-}
-
 /*
  * Find the IRQ entry number of a certain pin.
  */
diff -puN include/asm-i386/mach-default/mach_apic.h~apic-make-mach_default-compile-again include/asm-i386/mach-default/mach_apic.h
--- 25/include/asm-i386/mach-default/mach_apic.h~apic-make-mach_default-compile-again	Wed Jun  9 14:46:02 2004
+++ 25-akpm/include/asm-i386/mach-default/mach_apic.h	Wed Jun  9 14:46:02 2004
@@ -2,6 +2,7 @@
 #define __ASM_MACH_APIC_H
 
 #include <mach_apicdef.h>
+#include <asm/smp.h>
 
 #define APIC_DFR_VALUE	(APIC_DFR_FLAT)
 
_