diff --git a/xen/arch/x86/genapic/bigsmp.c b/xen/arch/x86/genapic/bigsmp.c index e97e4453a0..b2e7218452 100644 --- a/xen/arch/x86/genapic/bigsmp.c +++ b/xen/arch/x86/genapic/bigsmp.c @@ -46,5 +46,11 @@ static int __init cf_check probe_bigsmp(void) const struct genapic __initconst_cf_clobber apic_bigsmp = { APIC_INIT("bigsmp", probe_bigsmp), - GENAPIC_PHYS + .int_delivery_mode = dest_Fixed, + .int_dest_mode = 0, /* physical delivery */ + .init_apic_ldr = init_apic_ldr_phys, + .vector_allocation_cpumask = vector_allocation_cpumask_phys, + .cpu_mask_to_apicid = cpu_mask_to_apicid_phys, + .send_IPI_mask = send_IPI_mask_phys, + .send_IPI_self = send_IPI_self_legacy }; diff --git a/xen/arch/x86/genapic/default.c b/xen/arch/x86/genapic/default.c index a968836a18..59c79afdb8 100644 --- a/xen/arch/x86/genapic/default.c +++ b/xen/arch/x86/genapic/default.c @@ -16,5 +16,11 @@ /* should be called last. */ const struct genapic __initconst_cf_clobber apic_default = { APIC_INIT("default", NULL), - GENAPIC_FLAT + .int_delivery_mode = dest_Fixed, + .int_dest_mode = 0, /* physical delivery */ + .init_apic_ldr = init_apic_ldr_flat, + .vector_allocation_cpumask = vector_allocation_cpumask_phys, + .cpu_mask_to_apicid = cpu_mask_to_apicid_phys, + .send_IPI_mask = send_IPI_mask_flat, + .send_IPI_self = send_IPI_self_legacy }; diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c index d1f99bf683..3def78f380 100644 --- a/xen/arch/x86/genapic/delivery.c +++ b/xen/arch/x86/genapic/delivery.c @@ -19,16 +19,6 @@ void cf_check init_apic_ldr_flat(void) apic_write(APIC_LDR, val); } -const cpumask_t *cf_check vector_allocation_cpumask_flat(int cpu) -{ - return &cpu_online_map; -} - -unsigned int cf_check cpu_mask_to_apicid_flat(const cpumask_t *cpumask) -{ - return cpumask_bits(cpumask)[0]&0xFF; -} - /* * PHYSICAL DELIVERY MODE (unicast to physical APIC IDs). */ diff --git a/xen/arch/x86/include/asm/genapic.h b/xen/arch/x86/include/asm/genapic.h index a694371c6d..4d39fb9a24 100644 --- a/xen/arch/x86/include/asm/genapic.h +++ b/xen/arch/x86/include/asm/genapic.h @@ -44,29 +44,11 @@ extern const struct genapic apic_bigsmp; void cf_check send_IPI_self_legacy(uint8_t vector); void cf_check init_apic_ldr_flat(void); -unsigned int cf_check cpu_mask_to_apicid_flat(const cpumask_t *cpumask); void cf_check send_IPI_mask_flat(const cpumask_t *cpumask, int vector); -const cpumask_t *cf_check vector_allocation_cpumask_flat(int cpu); -#define GENAPIC_FLAT \ - .int_delivery_mode = dest_LowestPrio, \ - .int_dest_mode = 1 /* logical delivery */, \ - .init_apic_ldr = init_apic_ldr_flat, \ - .vector_allocation_cpumask = vector_allocation_cpumask_flat, \ - .cpu_mask_to_apicid = cpu_mask_to_apicid_flat, \ - .send_IPI_mask = send_IPI_mask_flat, \ - .send_IPI_self = send_IPI_self_legacy void cf_check init_apic_ldr_phys(void); unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask); void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector); const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu); -#define GENAPIC_PHYS \ - .int_delivery_mode = dest_Fixed, \ - .int_dest_mode = 0 /* physical delivery */, \ - .init_apic_ldr = init_apic_ldr_phys, \ - .vector_allocation_cpumask = vector_allocation_cpumask_phys, \ - .cpu_mask_to_apicid = cpu_mask_to_apicid_phys, \ - .send_IPI_mask = send_IPI_mask_phys, \ - .send_IPI_self = send_IPI_self_legacy #endif