diff options
Diffstat (limited to 'arch/i386/kernel/smpboot.c')
| -rw-r--r-- | arch/i386/kernel/smpboot.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index f948419c888..efe07990e7f 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
| @@ -642,9 +642,13 @@ static void map_cpu_to_logical_apicid(void) | |||
| 642 | { | 642 | { |
| 643 | int cpu = smp_processor_id(); | 643 | int cpu = smp_processor_id(); |
| 644 | int apicid = logical_smp_processor_id(); | 644 | int apicid = logical_smp_processor_id(); |
| 645 | int node = apicid_to_node(apicid); | ||
| 646 | |||
| 647 | if (!node_online(node)) | ||
| 648 | node = first_online_node; | ||
| 645 | 649 | ||
| 646 | cpu_2_logical_apicid[cpu] = apicid; | 650 | cpu_2_logical_apicid[cpu] = apicid; |
| 647 | map_cpu_to_node(cpu, apicid_to_node(apicid)); | 651 | map_cpu_to_node(cpu, node); |
| 648 | } | 652 | } |
| 649 | 653 | ||
| 650 | static void unmap_cpu_to_logical_apicid(int cpu) | 654 | static void unmap_cpu_to_logical_apicid(int cpu) |
