diff options
Diffstat (limited to 'arch/x86/kernel/apic/x2apic_phys.c')
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_phys.c | 39 |
1 files changed, 3 insertions, 36 deletions
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c index c17e982db275..e03a1e180e81 100644 --- a/arch/x86/kernel/apic/x2apic_phys.c +++ b/arch/x86/kernel/apic/x2apic_phys.c | |||
| @@ -76,38 +76,6 @@ static void x2apic_send_IPI_all(int vector) | |||
| 76 | __x2apic_send_IPI_mask(cpu_online_mask, vector, APIC_DEST_ALLINC); | 76 | __x2apic_send_IPI_mask(cpu_online_mask, vector, APIC_DEST_ALLINC); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | static unsigned int x2apic_cpu_mask_to_apicid(const struct cpumask *cpumask) | ||
| 80 | { | ||
| 81 | /* | ||
| 82 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | ||
| 83 | * May as well be the first. | ||
| 84 | */ | ||
| 85 | int cpu = cpumask_first(cpumask); | ||
| 86 | |||
| 87 | if ((unsigned)cpu < nr_cpu_ids) | ||
| 88 | return per_cpu(x86_cpu_to_apicid, cpu); | ||
| 89 | else | ||
| 90 | return BAD_APICID; | ||
| 91 | } | ||
| 92 | |||
| 93 | static unsigned int | ||
| 94 | x2apic_cpu_mask_to_apicid_and(const struct cpumask *cpumask, | ||
| 95 | const struct cpumask *andmask) | ||
| 96 | { | ||
| 97 | int cpu; | ||
| 98 | |||
| 99 | /* | ||
| 100 | * We're using fixed IRQ delivery, can only return one phys APIC ID. | ||
| 101 | * May as well be the first. | ||
| 102 | */ | ||
| 103 | for_each_cpu_and(cpu, cpumask, andmask) { | ||
| 104 | if (cpumask_test_cpu(cpu, cpu_online_mask)) | ||
| 105 | break; | ||
| 106 | } | ||
| 107 | |||
| 108 | return per_cpu(x86_cpu_to_apicid, cpu); | ||
| 109 | } | ||
| 110 | |||
| 111 | static void init_x2apic_ldr(void) | 79 | static void init_x2apic_ldr(void) |
| 112 | { | 80 | { |
| 113 | } | 81 | } |
| @@ -131,13 +99,13 @@ static struct apic apic_x2apic_phys = { | |||
| 131 | .irq_delivery_mode = dest_Fixed, | 99 | .irq_delivery_mode = dest_Fixed, |
| 132 | .irq_dest_mode = 0, /* physical */ | 100 | .irq_dest_mode = 0, /* physical */ |
| 133 | 101 | ||
| 134 | .target_cpus = x2apic_target_cpus, | 102 | .target_cpus = online_target_cpus, |
| 135 | .disable_esr = 0, | 103 | .disable_esr = 0, |
| 136 | .dest_logical = 0, | 104 | .dest_logical = 0, |
| 137 | .check_apicid_used = NULL, | 105 | .check_apicid_used = NULL, |
| 138 | .check_apicid_present = NULL, | 106 | .check_apicid_present = NULL, |
| 139 | 107 | ||
| 140 | .vector_allocation_domain = x2apic_vector_allocation_domain, | 108 | .vector_allocation_domain = default_vector_allocation_domain, |
| 141 | .init_apic_ldr = init_x2apic_ldr, | 109 | .init_apic_ldr = init_x2apic_ldr, |
| 142 | 110 | ||
| 143 | .ioapic_phys_id_map = NULL, | 111 | .ioapic_phys_id_map = NULL, |
| @@ -155,8 +123,7 @@ static struct apic apic_x2apic_phys = { | |||
| 155 | .set_apic_id = x2apic_set_apic_id, | 123 | .set_apic_id = x2apic_set_apic_id, |
| 156 | .apic_id_mask = 0xFFFFFFFFu, | 124 | .apic_id_mask = 0xFFFFFFFFu, |
| 157 | 125 | ||
| 158 | .cpu_mask_to_apicid = x2apic_cpu_mask_to_apicid, | 126 | .cpu_mask_to_apicid_and = default_cpu_mask_to_apicid_and, |
| 159 | .cpu_mask_to_apicid_and = x2apic_cpu_mask_to_apicid_and, | ||
| 160 | 127 | ||
| 161 | .send_IPI_mask = x2apic_send_IPI_mask, | 128 | .send_IPI_mask = x2apic_send_IPI_mask, |
| 162 | .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, | 129 | .send_IPI_mask_allbutself = x2apic_send_IPI_mask_allbutself, |
