diff options
Diffstat (limited to 'arch/x86/include/asm/apic.h')
-rw-r--r-- | arch/x86/include/asm/apic.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index bef571769e68..feb2dbdae9ec 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h | |||
@@ -615,6 +615,27 @@ extern unsigned int | |||
615 | default_cpu_mask_to_apicid_and(const struct cpumask *cpumask, | 615 | default_cpu_mask_to_apicid_and(const struct cpumask *cpumask, |
616 | const struct cpumask *andmask); | 616 | const struct cpumask *andmask); |
617 | 617 | ||
618 | static inline void | ||
619 | flat_vector_allocation_domain(int cpu, struct cpumask *retmask) | ||
620 | { | ||
621 | /* Careful. Some cpus do not strictly honor the set of cpus | ||
622 | * specified in the interrupt destination when using lowest | ||
623 | * priority interrupt delivery mode. | ||
624 | * | ||
625 | * In particular there was a hyperthreading cpu observed to | ||
626 | * deliver interrupts to the wrong hyperthread when only one | ||
627 | * hyperthread was specified in the interrupt desitination. | ||
628 | */ | ||
629 | cpumask_clear(retmask); | ||
630 | cpumask_bits(retmask)[0] = APIC_ALL_CPUS; | ||
631 | } | ||
632 | |||
633 | static inline void | ||
634 | default_vector_allocation_domain(int cpu, struct cpumask *retmask) | ||
635 | { | ||
636 | cpumask_copy(retmask, cpumask_of(cpu)); | ||
637 | } | ||
638 | |||
618 | static inline unsigned long default_check_apicid_used(physid_mask_t *map, int apicid) | 639 | static inline unsigned long default_check_apicid_used(physid_mask_t *map, int apicid) |
619 | { | 640 | { |
620 | return physid_isset(apicid, *map); | 641 | return physid_isset(apicid, *map); |