Commit 071922c08cef62e194d83db1cc4fa75892c69651

Authored by Vivek Goyal
Committed by Linus Torvalds
1 parent 41a5311465

i386: es7000 build breakage fix

o Commit 1833d6bc72893265f22addd79cf52e6987496e0f broke the build if
  compiled with CONFIG_ES7000=y and CONFIG_X86_GENERICARCH=n

arch/i386/kernel/built-in.o(.init.text+0x4fa9): In function `acpi_parse_madt':
: undefined reference to `acpi_madt_oem_check'
arch/i386/kernel/built-in.o(.init.text+0x7406): In function `smp_read_mpc':
: undefined reference to `mps_oem_check'
arch/i386/kernel/built-in.o(.init.text+0x8990): In function
`connect_bsp_APIC':
: undefined reference to `enable_apic_mode'
make: *** [.tmp_vmlinux1] Error 1

o Fix the build issue. Provided the definitions of missing functions.

o Don't have ES7000 machine. Only compile tested.

Cc: Len Brown <lenb@kernel.org>
Cc: Natalie Protasevich <protasnb@gmail.com>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 3 changed files with 58 additions and 0 deletions Side-by-side Diff

arch/i386/mach-es7000/es7000plat.c
... ... @@ -40,6 +40,7 @@
40 40 #include <asm/smp.h>
41 41 #include <asm/apicdef.h>
42 42 #include "es7000.h"
  43 +#include <mach_mpparse.h>
43 44  
44 45 /*
45 46 * ES7000 Globals
... ... @@ -173,6 +174,53 @@
173 174 return -1;
174 175 }
175 176 #endif
  177 +
  178 +/*
  179 + * This file also gets compiled if CONFIG_X86_GENERICARCH is set. Generic
  180 + * arch already has got following function definitions (asm-generic/es7000.c)
  181 + * hence no need to define these for that case.
  182 + */
  183 +#ifndef CONFIG_X86_GENERICARCH
  184 +void es7000_sw_apic(void);
  185 +void __init enable_apic_mode(void)
  186 +{
  187 + es7000_sw_apic();
  188 + return;
  189 +}
  190 +
  191 +__init int mps_oem_check(struct mp_config_table *mpc, char *oem,
  192 + char *productid)
  193 +{
  194 + if (mpc->mpc_oemptr) {
  195 + struct mp_config_oemtable *oem_table =
  196 + (struct mp_config_oemtable *)mpc->mpc_oemptr;
  197 + if (!strncmp(oem, "UNISYS", 6))
  198 + return parse_unisys_oem((char *)oem_table);
  199 + }
  200 + return 0;
  201 +}
  202 +#ifdef CONFIG_ACPI
  203 +/* Hook from generic ACPI tables.c */
  204 +int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
  205 +{
  206 + unsigned long oem_addr;
  207 + if (!find_unisys_acpi_oem_table(&oem_addr)) {
  208 + if (es7000_check_dsdt())
  209 + return parse_unisys_oem((char *)oem_addr);
  210 + else {
  211 + setup_unisys();
  212 + return 1;
  213 + }
  214 + }
  215 + return 0;
  216 +}
  217 +#else
  218 +int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
  219 +{
  220 + return 0;
  221 +}
  222 +#endif
  223 +#endif /* COFIG_X86_GENERICARCH */
176 224  
177 225 static void
178 226 es7000_spin(int n)
include/asm-i386/mach-es7000/mach_apic.h
... ... @@ -73,6 +73,10 @@
73 73 apic_write_around(APIC_LDR, val);
74 74 }
75 75  
  76 +#ifndef CONFIG_X86_GENERICARCH
  77 +extern void enable_apic_mode(void);
  78 +#endif
  79 +
76 80 extern int apic_version [MAX_APICS];
77 81 static inline void setup_apic_routing(void)
78 82 {
include/asm-i386/mach-es7000/mach_mpparse.h
... ... @@ -18,6 +18,12 @@
18 18 extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
19 19 extern void setup_unisys(void);
20 20  
  21 +#ifndef CONFIG_X86_GENERICARCH
  22 +extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
  23 +extern int mps_oem_check(struct mp_config_table *mpc, char *oem,
  24 + char *productid);
  25 +#endif
  26 +
21 27 #ifdef CONFIG_ACPI
22 28  
23 29 static inline int es7000_check_dsdt(void)