diff options
| -rw-r--r-- | arch/x86/include/asm/cpu.h | 21 | ||||
| -rw-r--r-- | arch/x86/include/asm/cpumask.h | 28 | ||||
| -rw-r--r-- | arch/x86/include/asm/mpspec_def.h | 23 | ||||
| -rw-r--r-- | arch/x86/include/asm/smp.h | 41 | ||||
| -rw-r--r-- | arch/x86/include/asm/tlbflush.h | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/common.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/crash.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/io_apic.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/mpparse.c | 62 | ||||
| -rw-r--r-- | arch/x86/kernel/reboot.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/setup_percpu.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/smpboot.c | 1 | ||||
| -rw-r--r-- | arch/x86/mach-voyager/setup.c | 1 | ||||
| -rw-r--r-- | arch/x86/mm/init_32.c | 1 | ||||
| -rw-r--r-- | drivers/pci/intr_remapping.c | 1 |
16 files changed, 104 insertions, 86 deletions
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h index bae482df6039..f03b23e32864 100644 --- a/arch/x86/include/asm/cpu.h +++ b/arch/x86/include/asm/cpu.h | |||
| @@ -7,6 +7,20 @@ | |||
| 7 | #include <linux/nodemask.h> | 7 | #include <linux/nodemask.h> |
| 8 | #include <linux/percpu.h> | 8 | #include <linux/percpu.h> |
| 9 | 9 | ||
| 10 | #ifdef CONFIG_SMP | ||
| 11 | |||
| 12 | extern void prefill_possible_map(void); | ||
| 13 | |||
| 14 | #else /* CONFIG_SMP */ | ||
| 15 | |||
| 16 | static inline void prefill_possible_map(void) {} | ||
| 17 | |||
| 18 | #define cpu_physical_id(cpu) boot_cpu_physical_apicid | ||
| 19 | #define safe_smp_processor_id() 0 | ||
| 20 | #define stack_smp_processor_id() 0 | ||
| 21 | |||
| 22 | #endif /* CONFIG_SMP */ | ||
| 23 | |||
| 10 | struct x86_cpu { | 24 | struct x86_cpu { |
| 11 | struct cpu cpu; | 25 | struct cpu cpu; |
| 12 | }; | 26 | }; |
| @@ -17,4 +31,11 @@ extern void arch_unregister_cpu(int); | |||
| 17 | #endif | 31 | #endif |
| 18 | 32 | ||
| 19 | DECLARE_PER_CPU(int, cpu_state); | 33 | DECLARE_PER_CPU(int, cpu_state); |
| 34 | |||
| 35 | #ifdef CONFIG_X86_HAS_BOOT_CPU_ID | ||
| 36 | extern unsigned char boot_cpu_id; | ||
| 37 | #else | ||
| 38 | #define boot_cpu_id 0 | ||
| 39 | #endif | ||
| 40 | |||
| 20 | #endif /* _ASM_X86_CPU_H */ | 41 | #endif /* _ASM_X86_CPU_H */ |
diff --git a/arch/x86/include/asm/cpumask.h b/arch/x86/include/asm/cpumask.h new file mode 100644 index 000000000000..26c6dad90479 --- /dev/null +++ b/arch/x86/include/asm/cpumask.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | #ifndef _ASM_X86_CPUMASK_H | ||
| 2 | #define _ASM_X86_CPUMASK_H | ||
| 3 | #ifndef __ASSEMBLY__ | ||
| 4 | #include <linux/cpumask.h> | ||
| 5 | |||
| 6 | #ifdef CONFIG_X86_64 | ||
| 7 | |||
| 8 | extern cpumask_var_t cpu_callin_mask; | ||
| 9 | extern cpumask_var_t cpu_callout_mask; | ||
| 10 | extern cpumask_var_t cpu_initialized_mask; | ||
| 11 | extern cpumask_var_t cpu_sibling_setup_mask; | ||
| 12 | |||
| 13 | #else /* CONFIG_X86_32 */ | ||
| 14 | |||
| 15 | extern cpumask_t cpu_callin_map; | ||
| 16 | extern cpumask_t cpu_callout_map; | ||
| 17 | extern cpumask_t cpu_initialized; | ||
| 18 | extern cpumask_t cpu_sibling_setup_map; | ||
| 19 | |||
| 20 | #define cpu_callin_mask ((struct cpumask *)&cpu_callin_map) | ||
| 21 | #define cpu_callout_mask ((struct cpumask *)&cpu_callout_map) | ||
| 22 | #define cpu_initialized_mask ((struct cpumask *)&cpu_initialized) | ||
| 23 | #define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map) | ||
| 24 | |||
| 25 | #endif /* CONFIG_X86_32 */ | ||
| 26 | |||
| 27 | #endif /* __ASSEMBLY__ */ | ||
| 28 | #endif /* _ASM_X86_CPUMASK_H */ | ||
diff --git a/arch/x86/include/asm/mpspec_def.h b/arch/x86/include/asm/mpspec_def.h index 59568bc4767f..4a7f96d7c188 100644 --- a/arch/x86/include/asm/mpspec_def.h +++ b/arch/x86/include/asm/mpspec_def.h | |||
| @@ -24,17 +24,18 @@ | |||
| 24 | # endif | 24 | # endif |
| 25 | #endif | 25 | #endif |
| 26 | 26 | ||
| 27 | struct intel_mp_floating { | 27 | /* Intel MP Floating Pointer Structure */ |
| 28 | char mpf_signature[4]; /* "_MP_" */ | 28 | struct mpf_intel { |
| 29 | unsigned int mpf_physptr; /* Configuration table address */ | 29 | char signature[4]; /* "_MP_" */ |
| 30 | unsigned char mpf_length; /* Our length (paragraphs) */ | 30 | unsigned int physptr; /* Configuration table address */ |
| 31 | unsigned char mpf_specification;/* Specification version */ | 31 | unsigned char length; /* Our length (paragraphs) */ |
| 32 | unsigned char mpf_checksum; /* Checksum (makes sum 0) */ | 32 | unsigned char specification; /* Specification version */ |
| 33 | unsigned char mpf_feature1; /* Standard or configuration ? */ | 33 | unsigned char checksum; /* Checksum (makes sum 0) */ |
| 34 | unsigned char mpf_feature2; /* Bit7 set for IMCR|PIC */ | 34 | unsigned char feature1; /* Standard or configuration ? */ |
| 35 | unsigned char mpf_feature3; /* Unused (0) */ | 35 | unsigned char feature2; /* Bit7 set for IMCR|PIC */ |
| 36 | unsigned char mpf_feature4; /* Unused (0) */ | 36 | unsigned char feature3; /* Unused (0) */ |
| 37 | unsigned char mpf_feature5; /* Unused (0) */ | 37 | unsigned char feature4; /* Unused (0) */ |
| 38 | unsigned char feature5; /* Unused (0) */ | ||
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| 40 | #define MPC_SIGNATURE "PCMP" | 41 | #define MPC_SIGNATURE "PCMP" |
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index 19953df61c52..a8cea7b09434 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h | |||
| @@ -17,30 +17,7 @@ | |||
| 17 | #endif | 17 | #endif |
| 18 | #include <asm/pda.h> | 18 | #include <asm/pda.h> |
| 19 | #include <asm/thread_info.h> | 19 | #include <asm/thread_info.h> |
| 20 | 20 | #include <asm/cpumask.h> | |
| 21 | #ifdef CONFIG_X86_64 | ||
| 22 | |||
| 23 | extern cpumask_var_t cpu_callin_mask; | ||
| 24 | extern cpumask_var_t cpu_callout_mask; | ||
| 25 | extern cpumask_var_t cpu_initialized_mask; | ||
| 26 | extern cpumask_var_t cpu_sibling_setup_mask; | ||
| 27 | |||
| 28 | #else /* CONFIG_X86_32 */ | ||
| 29 | |||
| 30 | extern cpumask_t cpu_callin_map; | ||
| 31 | extern cpumask_t cpu_callout_map; | ||
| 32 | extern cpumask_t cpu_initialized; | ||
| 33 | extern cpumask_t cpu_sibling_setup_map; | ||
| 34 | |||
| 35 | #define cpu_callin_mask ((struct cpumask *)&cpu_callin_map) | ||
| 36 | #define cpu_callout_mask ((struct cpumask *)&cpu_callout_map) | ||
| 37 | #define cpu_initialized_mask ((struct cpumask *)&cpu_initialized) | ||
| 38 | #define cpu_sibling_setup_mask ((struct cpumask *)&cpu_sibling_setup_map) | ||
| 39 | |||
| 40 | #endif /* CONFIG_X86_32 */ | ||
| 41 | |||
| 42 | extern void (*mtrr_hook)(void); | ||
| 43 | extern void zap_low_mappings(void); | ||
| 44 | 21 | ||
| 45 | extern int __cpuinit get_local_pda(int cpu); | 22 | extern int __cpuinit get_local_pda(int cpu); |
| 46 | 23 | ||
| @@ -167,8 +144,6 @@ void play_dead_common(void); | |||
| 167 | void native_send_call_func_ipi(const struct cpumask *mask); | 144 | void native_send_call_func_ipi(const struct cpumask *mask); |
| 168 | void native_send_call_func_single_ipi(int cpu); | 145 | void native_send_call_func_single_ipi(int cpu); |
| 169 | 146 | ||
| 170 | extern void prefill_possible_map(void); | ||
| 171 | |||
| 172 | void smp_store_cpu_info(int id); | 147 | void smp_store_cpu_info(int id); |
| 173 | #define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) | 148 | #define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) |
| 174 | 149 | ||
| @@ -177,10 +152,6 @@ static inline int num_booting_cpus(void) | |||
| 177 | { | 152 | { |
| 178 | return cpumask_weight(cpu_callout_mask); | 153 | return cpumask_weight(cpu_callout_mask); |
| 179 | } | 154 | } |
| 180 | #else | ||
| 181 | static inline void prefill_possible_map(void) | ||
| 182 | { | ||
| 183 | } | ||
| 184 | #endif /* CONFIG_SMP */ | 155 | #endif /* CONFIG_SMP */ |
| 185 | 156 | ||
| 186 | extern unsigned disabled_cpus __cpuinitdata; | 157 | extern unsigned disabled_cpus __cpuinitdata; |
| @@ -205,10 +176,6 @@ extern int safe_smp_processor_id(void); | |||
| 205 | }) | 176 | }) |
| 206 | #define safe_smp_processor_id() smp_processor_id() | 177 | #define safe_smp_processor_id() smp_processor_id() |
| 207 | 178 | ||
| 208 | #else /* !CONFIG_X86_32_SMP && !CONFIG_X86_64_SMP */ | ||
| 209 | #define cpu_physical_id(cpu) boot_cpu_physical_apicid | ||
| 210 | #define safe_smp_processor_id() 0 | ||
| 211 | #define stack_smp_processor_id() 0 | ||
| 212 | #endif | 179 | #endif |
| 213 | 180 | ||
| 214 | #ifdef CONFIG_X86_LOCAL_APIC | 181 | #ifdef CONFIG_X86_LOCAL_APIC |
| @@ -251,11 +218,5 @@ static inline int hard_smp_processor_id(void) | |||
| 251 | 218 | ||
| 252 | #endif /* CONFIG_X86_LOCAL_APIC */ | 219 | #endif /* CONFIG_X86_LOCAL_APIC */ |
| 253 | 220 | ||
| 254 | #ifdef CONFIG_X86_HAS_BOOT_CPU_ID | ||
| 255 | extern unsigned char boot_cpu_id; | ||
| 256 | #else | ||
| 257 | #define boot_cpu_id 0 | ||
| 258 | #endif | ||
| 259 | |||
| 260 | #endif /* __ASSEMBLY__ */ | 221 | #endif /* __ASSEMBLY__ */ |
| 261 | #endif /* _ASM_X86_SMP_H */ | 222 | #endif /* _ASM_X86_SMP_H */ |
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index 0e7bbb549116..aed0b700b837 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h | |||
| @@ -175,4 +175,6 @@ static inline void flush_tlb_kernel_range(unsigned long start, | |||
| 175 | flush_tlb_all(); | 175 | flush_tlb_all(); |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | extern void zap_low_mappings(void); | ||
| 179 | |||
| 178 | #endif /* _ASM_X86_TLBFLUSH_H */ | 180 | #endif /* _ASM_X86_TLBFLUSH_H */ |
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 83492b1f93b1..f00258462444 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
| @@ -21,6 +21,8 @@ | |||
| 21 | #include <asm/asm.h> | 21 | #include <asm/asm.h> |
| 22 | #include <asm/numa.h> | 22 | #include <asm/numa.h> |
| 23 | #include <asm/smp.h> | 23 | #include <asm/smp.h> |
| 24 | #include <asm/cpu.h> | ||
| 25 | #include <asm/cpumask.h> | ||
| 24 | #ifdef CONFIG_X86_LOCAL_APIC | 26 | #ifdef CONFIG_X86_LOCAL_APIC |
| 25 | #include <asm/mpspec.h> | 27 | #include <asm/mpspec.h> |
| 26 | #include <asm/apic.h> | 28 | #include <asm/apic.h> |
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c index c689d19e35ab..11b93cabdf78 100644 --- a/arch/x86/kernel/crash.c +++ b/arch/x86/kernel/crash.c | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | #include <asm/apic.h> | 24 | #include <asm/apic.h> |
| 25 | #include <asm/hpet.h> | 25 | #include <asm/hpet.h> |
| 26 | #include <linux/kdebug.h> | 26 | #include <linux/kdebug.h> |
| 27 | #include <asm/smp.h> | 27 | #include <asm/cpu.h> |
| 28 | #include <asm/reboot.h> | 28 | #include <asm/reboot.h> |
| 29 | #include <asm/virtext.h> | 29 | #include <asm/virtext.h> |
| 30 | 30 | ||
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c index 1c4a1302536c..109c91db2026 100644 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | #include <asm/idle.h> | 46 | #include <asm/idle.h> |
| 47 | #include <asm/io.h> | 47 | #include <asm/io.h> |
| 48 | #include <asm/smp.h> | 48 | #include <asm/smp.h> |
| 49 | #include <asm/cpu.h> | ||
| 49 | #include <asm/desc.h> | 50 | #include <asm/desc.h> |
| 50 | #include <asm/proto.h> | 51 | #include <asm/proto.h> |
| 51 | #include <asm/acpi.h> | 52 | #include <asm/acpi.h> |
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index c0601c2848a1..8385d4e7e15d 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c | |||
| @@ -569,14 +569,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) | |||
| 569 | } | 569 | } |
| 570 | } | 570 | } |
| 571 | 571 | ||
| 572 | static struct intel_mp_floating *mpf_found; | 572 | static struct mpf_intel *mpf_found; |
| 573 | 573 | ||
| 574 | /* | 574 | /* |
| 575 | * Scan the memory blocks for an SMP configuration block. | 575 | * Scan the memory blocks for an SMP configuration block. |
| 576 | */ | 576 | */ |
| 577 | static void __init __get_smp_config(unsigned int early) | 577 | static void __init __get_smp_config(unsigned int early) |
| 578 | { | 578 | { |
| 579 | struct intel_mp_floating *mpf = mpf_found; | 579 | struct mpf_intel *mpf = mpf_found; |
| 580 | 580 | ||
| 581 | if (!mpf) | 581 | if (!mpf) |
| 582 | return; | 582 | return; |
| @@ -597,9 +597,9 @@ static void __init __get_smp_config(unsigned int early) | |||
| 597 | } | 597 | } |
| 598 | 598 | ||
| 599 | printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", | 599 | printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", |
| 600 | mpf->mpf_specification); | 600 | mpf->specification); |
| 601 | #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) | 601 | #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) |
| 602 | if (mpf->mpf_feature2 & (1 << 7)) { | 602 | if (mpf->feature2 & (1 << 7)) { |
| 603 | printk(KERN_INFO " IMCR and PIC compatibility mode.\n"); | 603 | printk(KERN_INFO " IMCR and PIC compatibility mode.\n"); |
| 604 | pic_mode = 1; | 604 | pic_mode = 1; |
| 605 | } else { | 605 | } else { |
| @@ -610,7 +610,7 @@ static void __init __get_smp_config(unsigned int early) | |||
| 610 | /* | 610 | /* |
| 611 | * Now see if we need to read further. | 611 | * Now see if we need to read further. |
| 612 | */ | 612 | */ |
| 613 | if (mpf->mpf_feature1 != 0) { | 613 | if (mpf->feature1 != 0) { |
| 614 | if (early) { | 614 | if (early) { |
| 615 | /* | 615 | /* |
| 616 | * local APIC has default address | 616 | * local APIC has default address |
| @@ -620,16 +620,16 @@ static void __init __get_smp_config(unsigned int early) | |||
| 620 | } | 620 | } |
| 621 | 621 | ||
| 622 | printk(KERN_INFO "Default MP configuration #%d\n", | 622 | printk(KERN_INFO "Default MP configuration #%d\n", |
| 623 | mpf->mpf_feature1); | 623 | mpf->feature1); |
| 624 | construct_default_ISA_mptable(mpf->mpf_feature1); | 624 | construct_default_ISA_mptable(mpf->feature1); |
| 625 | 625 | ||
| 626 | } else if (mpf->mpf_physptr) { | 626 | } else if (mpf->physptr) { |
| 627 | 627 | ||
| 628 | /* | 628 | /* |
| 629 | * Read the physical hardware table. Anything here will | 629 | * Read the physical hardware table. Anything here will |
| 630 | * override the defaults. | 630 | * override the defaults. |
| 631 | */ | 631 | */ |
| 632 | if (!smp_read_mpc(phys_to_virt(mpf->mpf_physptr), early)) { | 632 | if (!smp_read_mpc(phys_to_virt(mpf->physptr), early)) { |
| 633 | #ifdef CONFIG_X86_LOCAL_APIC | 633 | #ifdef CONFIG_X86_LOCAL_APIC |
| 634 | smp_found_config = 0; | 634 | smp_found_config = 0; |
| 635 | #endif | 635 | #endif |
| @@ -687,19 +687,19 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, | |||
| 687 | unsigned reserve) | 687 | unsigned reserve) |
| 688 | { | 688 | { |
| 689 | unsigned int *bp = phys_to_virt(base); | 689 | unsigned int *bp = phys_to_virt(base); |
| 690 | struct intel_mp_floating *mpf; | 690 | struct mpf_intel *mpf; |
| 691 | 691 | ||
| 692 | apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n", | 692 | apic_printk(APIC_VERBOSE, "Scan SMP from %p for %ld bytes.\n", |
| 693 | bp, length); | 693 | bp, length); |
| 694 | BUILD_BUG_ON(sizeof(*mpf) != 16); | 694 | BUILD_BUG_ON(sizeof(*mpf) != 16); |
| 695 | 695 | ||
| 696 | while (length > 0) { | 696 | while (length > 0) { |
| 697 | mpf = (struct intel_mp_floating *)bp; | 697 | mpf = (struct mpf_intel *)bp; |
| 698 | if ((*bp == SMP_MAGIC_IDENT) && | 698 | if ((*bp == SMP_MAGIC_IDENT) && |
| 699 | (mpf->mpf_length == 1) && | 699 | (mpf->length == 1) && |
| 700 | !mpf_checksum((unsigned char *)bp, 16) && | 700 | !mpf_checksum((unsigned char *)bp, 16) && |
| 701 | ((mpf->mpf_specification == 1) | 701 | ((mpf->specification == 1) |
| 702 | || (mpf->mpf_specification == 4))) { | 702 | || (mpf->specification == 4))) { |
| 703 | #ifdef CONFIG_X86_LOCAL_APIC | 703 | #ifdef CONFIG_X86_LOCAL_APIC |
| 704 | smp_found_config = 1; | 704 | smp_found_config = 1; |
| 705 | #endif | 705 | #endif |
| @@ -712,7 +712,7 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, | |||
| 712 | return 1; | 712 | return 1; |
| 713 | reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, | 713 | reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, |
| 714 | BOOTMEM_DEFAULT); | 714 | BOOTMEM_DEFAULT); |
| 715 | if (mpf->mpf_physptr) { | 715 | if (mpf->physptr) { |
| 716 | unsigned long size = PAGE_SIZE; | 716 | unsigned long size = PAGE_SIZE; |
| 717 | #ifdef CONFIG_X86_32 | 717 | #ifdef CONFIG_X86_32 |
| 718 | /* | 718 | /* |
| @@ -721,14 +721,14 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, | |||
| 721 | * the bottom is mapped now. | 721 | * the bottom is mapped now. |
| 722 | * PC-9800's MPC table places on the very last | 722 | * PC-9800's MPC table places on the very last |
| 723 | * of physical memory; so that simply reserving | 723 | * of physical memory; so that simply reserving |
| 724 | * PAGE_SIZE from mpg->mpf_physptr yields BUG() | 724 | * PAGE_SIZE from mpf->physptr yields BUG() |
| 725 | * in reserve_bootmem. | 725 | * in reserve_bootmem. |
| 726 | */ | 726 | */ |
| 727 | unsigned long end = max_low_pfn * PAGE_SIZE; | 727 | unsigned long end = max_low_pfn * PAGE_SIZE; |
| 728 | if (mpf->mpf_physptr + size > end) | 728 | if (mpf->physptr + size > end) |
| 729 | size = end - mpf->mpf_physptr; | 729 | size = end - mpf->physptr; |
| 730 | #endif | 730 | #endif |
| 731 | reserve_bootmem_generic(mpf->mpf_physptr, size, | 731 | reserve_bootmem_generic(mpf->physptr, size, |
| 732 | BOOTMEM_DEFAULT); | 732 | BOOTMEM_DEFAULT); |
| 733 | } | 733 | } |
| 734 | 734 | ||
| @@ -1000,7 +1000,7 @@ static int __init update_mp_table(void) | |||
| 1000 | { | 1000 | { |
| 1001 | char str[16]; | 1001 | char str[16]; |
| 1002 | char oem[10]; | 1002 | char oem[10]; |
| 1003 | struct intel_mp_floating *mpf; | 1003 | struct mpf_intel *mpf; |
| 1004 | struct mpc_table *mpc, *mpc_new; | 1004 | struct mpc_table *mpc, *mpc_new; |
| 1005 | 1005 | ||
| 1006 | if (!enable_update_mptable) | 1006 | if (!enable_update_mptable) |
| @@ -1013,19 +1013,19 @@ static int __init update_mp_table(void) | |||
| 1013 | /* | 1013 | /* |
| 1014 | * Now see if we need to go further. | 1014 | * Now see if we need to go further. |
| 1015 | */ | 1015 | */ |
| 1016 | if (mpf->mpf_feature1 != 0) | 1016 | if (mpf->feature1 != 0) |
| 1017 | return 0; | 1017 | return 0; |
| 1018 | 1018 | ||
| 1019 | if (!mpf->mpf_physptr) | 1019 | if (!mpf->physptr) |
| 1020 | return 0; | 1020 | return 0; |
| 1021 | 1021 | ||
| 1022 | mpc = phys_to_virt(mpf->mpf_physptr); | 1022 | mpc = phys_to_virt(mpf->physptr); |
| 1023 | 1023 | ||
| 1024 | if (!smp_check_mpc(mpc, oem, str)) | 1024 | if (!smp_check_mpc(mpc, oem, str)) |
| 1025 | return 0; | 1025 | return 0; |
| 1026 | 1026 | ||
| 1027 | printk(KERN_INFO "mpf: %lx\n", virt_to_phys(mpf)); | 1027 | printk(KERN_INFO "mpf: %lx\n", virt_to_phys(mpf)); |
| 1028 | printk(KERN_INFO "mpf_physptr: %x\n", mpf->mpf_physptr); | 1028 | printk(KERN_INFO "physptr: %x\n", mpf->physptr); |
| 1029 | 1029 | ||
| 1030 | if (mpc_new_phys && mpc->length > mpc_new_length) { | 1030 | if (mpc_new_phys && mpc->length > mpc_new_length) { |
| 1031 | mpc_new_phys = 0; | 1031 | mpc_new_phys = 0; |
| @@ -1046,23 +1046,23 @@ static int __init update_mp_table(void) | |||
| 1046 | } | 1046 | } |
| 1047 | printk(KERN_INFO "use in-positon replacing\n"); | 1047 | printk(KERN_INFO "use in-positon replacing\n"); |
| 1048 | } else { | 1048 | } else { |
| 1049 | mpf->mpf_physptr = mpc_new_phys; | 1049 | mpf->physptr = mpc_new_phys; |
| 1050 | mpc_new = phys_to_virt(mpc_new_phys); | 1050 | mpc_new = phys_to_virt(mpc_new_phys); |
| 1051 | memcpy(mpc_new, mpc, mpc->length); | 1051 | memcpy(mpc_new, mpc, mpc->length); |
| 1052 | mpc = mpc_new; | 1052 | mpc = mpc_new; |
| 1053 | /* check if we can modify that */ | 1053 | /* check if we can modify that */ |
| 1054 | if (mpc_new_phys - mpf->mpf_physptr) { | 1054 | if (mpc_new_phys - mpf->physptr) { |
| 1055 | struct intel_mp_floating *mpf_new; | 1055 | struct mpf_intel *mpf_new; |
| 1056 | /* steal 16 bytes from [0, 1k) */ | 1056 | /* steal 16 bytes from [0, 1k) */ |
| 1057 | printk(KERN_INFO "mpf new: %x\n", 0x400 - 16); | 1057 | printk(KERN_INFO "mpf new: %x\n", 0x400 - 16); |
| 1058 | mpf_new = phys_to_virt(0x400 - 16); | 1058 | mpf_new = phys_to_virt(0x400 - 16); |
| 1059 | memcpy(mpf_new, mpf, 16); | 1059 | memcpy(mpf_new, mpf, 16); |
| 1060 | mpf = mpf_new; | 1060 | mpf = mpf_new; |
| 1061 | mpf->mpf_physptr = mpc_new_phys; | 1061 | mpf->physptr = mpc_new_phys; |
| 1062 | } | 1062 | } |
| 1063 | mpf->mpf_checksum = 0; | 1063 | mpf->checksum = 0; |
| 1064 | mpf->mpf_checksum -= mpf_checksum((unsigned char *)mpf, 16); | 1064 | mpf->checksum -= mpf_checksum((unsigned char *)mpf, 16); |
| 1065 | printk(KERN_INFO "mpf_physptr new: %x\n", mpf->mpf_physptr); | 1065 | printk(KERN_INFO "physptr new: %x\n", mpf->physptr); |
| 1066 | } | 1066 | } |
| 1067 | 1067 | ||
| 1068 | /* | 1068 | /* |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 2b46eb41643b..f8536fee5c12 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <asm/reboot.h> | 14 | #include <asm/reboot.h> |
| 15 | #include <asm/pci_x86.h> | 15 | #include <asm/pci_x86.h> |
| 16 | #include <asm/virtext.h> | 16 | #include <asm/virtext.h> |
| 17 | #include <asm/cpu.h> | ||
| 17 | 18 | ||
| 18 | #ifdef CONFIG_X86_32 | 19 | #ifdef CONFIG_X86_32 |
| 19 | # include <linux/dmi.h> | 20 | # include <linux/dmi.h> |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index ae0d8042cf69..f41c4486c270 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
| @@ -89,7 +89,7 @@ | |||
| 89 | 89 | ||
| 90 | #include <asm/system.h> | 90 | #include <asm/system.h> |
| 91 | #include <asm/vsyscall.h> | 91 | #include <asm/vsyscall.h> |
| 92 | #include <asm/smp.h> | 92 | #include <asm/cpu.h> |
| 93 | #include <asm/desc.h> | 93 | #include <asm/desc.h> |
| 94 | #include <asm/dma.h> | 94 | #include <asm/dma.h> |
| 95 | #include <asm/iommu.h> | 95 | #include <asm/iommu.h> |
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c index 55c46074eba0..bf63de72b643 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <asm/mpspec.h> | 13 | #include <asm/mpspec.h> |
| 14 | #include <asm/apicdef.h> | 14 | #include <asm/apicdef.h> |
| 15 | #include <asm/highmem.h> | 15 | #include <asm/highmem.h> |
| 16 | #include <asm/cpumask.h> | ||
| 16 | 17 | ||
| 17 | #ifdef CONFIG_X86_LOCAL_APIC | 18 | #ifdef CONFIG_X86_LOCAL_APIC |
| 18 | unsigned int num_processors; | 19 | unsigned int num_processors; |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index bb1a3b1fc87f..6c2b8444b830 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
| @@ -53,7 +53,6 @@ | |||
| 53 | #include <asm/nmi.h> | 53 | #include <asm/nmi.h> |
| 54 | #include <asm/irq.h> | 54 | #include <asm/irq.h> |
| 55 | #include <asm/idle.h> | 55 | #include <asm/idle.h> |
| 56 | #include <asm/smp.h> | ||
| 57 | #include <asm/trampoline.h> | 56 | #include <asm/trampoline.h> |
| 58 | #include <asm/cpu.h> | 57 | #include <asm/cpu.h> |
| 59 | #include <asm/numa.h> | 58 | #include <asm/numa.h> |
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c index a580b9562e76..0ade62555ff3 100644 --- a/arch/x86/mach-voyager/setup.c +++ b/arch/x86/mach-voyager/setup.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <asm/e820.h> | 9 | #include <asm/e820.h> |
| 10 | #include <asm/io.h> | 10 | #include <asm/io.h> |
| 11 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
| 12 | #include <asm/cpu.h> | ||
| 12 | 13 | ||
| 13 | void __init pre_intr_init_hook(void) | 14 | void __init pre_intr_init_hook(void) |
| 14 | { | 15 | { |
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 88f1b10de3be..4a6989e47a53 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
| @@ -49,7 +49,6 @@ | |||
| 49 | #include <asm/paravirt.h> | 49 | #include <asm/paravirt.h> |
| 50 | #include <asm/setup.h> | 50 | #include <asm/setup.h> |
| 51 | #include <asm/cacheflush.h> | 51 | #include <asm/cacheflush.h> |
| 52 | #include <asm/smp.h> | ||
| 53 | 52 | ||
| 54 | unsigned int __VMALLOC_RESERVE = 128 << 20; | 53 | unsigned int __VMALLOC_RESERVE = 128 << 20; |
| 55 | 54 | ||
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index f78371b22529..5a57753ea9fc 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include <linux/irq.h> | 6 | #include <linux/irq.h> |
| 7 | #include <asm/io_apic.h> | 7 | #include <asm/io_apic.h> |
| 8 | #include <asm/smp.h> | 8 | #include <asm/smp.h> |
| 9 | #include <asm/cpu.h> | ||
| 9 | #include <linux/intel-iommu.h> | 10 | #include <linux/intel-iommu.h> |
| 10 | #include "intr_remapping.h" | 11 | #include "intr_remapping.h" |
| 11 | 12 | ||
