x86, x2apic: Move the common bits of physical, cluster modes to x2apic.h
RFC 2/2 x86, x2apic: Move the common bits of physical, cluster modes to x2apic.h
To eliminate code duplication.
Signed-off-by Cyrill Gorcunov <[email protected]>
Signed-off-by Suresh Siddha <[email protected]>
--- arch/x86/include/asm/x2apic.h | 64 +++++++++++++++++++++++++++++++ arch/x86/kernel/apic/x2apic_cluster.c | 70 +--------------------------------- arch/x86/kernel/apic/x2apic_phys.c | 68 +++------------------------------ 3 files changed, 75 insertions(+), 127 deletions(-)
arch/x86/include/asm/x2apic.h new file +64 -0
@@ -0,0 +1,64 @@ +/* +* Common bits for X2APIC cluster/physical modes +*/ + +#ifndef _ASM_X86_X2APIC_H +#define _ASM_X86_X2APIC_H + +#include <asm/apic.h> +#include <asm/ipi.h> +#include <linux/cpumask.h> + +/* +* need to use more than cpu 0, because we need more vectors +* when MSI-X are used +*/ +static const struct cpumask *x2apic_target_cpus (void ) +{ +return cpu_online_mask; +} + +static int x2apic_apic_id_registered (void ) +{ +return 1 ; +} + +/* +* for now each logical cpu is in its own vector allocation domain. +*/ +static void x2apic_vector_allocation_domain (int cpu,struct cpumask *retmask) +{ +cpumask_clear (retmask); +cpumask_set_cpu (cpu, retmask); +} + +static void __x2apic_send_IPI_dest (unsigned int apicid,int vector,unsigned int dest) +{ +unsigned long cfg =__prepare_ICR (0 , vector, dest); + +native_x2apic_icr_write (cfg, apicid); +} + +static unsigned int x2apic_get_apic_id (unsigned long x) +{ +return x; +} + +static unsigned long x2apic_set_apic_id (unsigned int id) +{ +return id; +} + +static int x2apic_phys_pkg_id (int initial_apicid,int index_msb) +{ +return initial_apicid >> index_msb; +} + +static void x2apic_send_IPI_self (int vector) +{ +apic_write (APIC_SELF_IPI , vector); +} + +void x2apic_init_cpu_notifier (void ); + +#endif /* _ASM_X86_X2APIC_H */
arch/x86/kernel/apic/x2apic_cluster.c +4 -66
102 lines not on this page · raw message
arch/x86/kernel/apic/x2apic_phys.c +7 -61
109 lines not on this page · raw message