Commit 071922c08cef62e194d83db1cc4fa75892c69651
Committed by
Linus Torvalds
1 parent
41a5311465
Exists in
master
and in
7 other branches
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
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) |