diff options
author | Jan Beulich <jbeulich@suse.com> | 2011-12-13 11:46:21 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2011-12-13 11:46:21 +0100 |
commit | 1b0a6f0d06c83d10a5583fe52c42bc45c2e277ab (patch) | |
tree | 1035f46a187ed3a57493923c9bb66047958840b0 /xen/arch/x86/acpi | |
parent | 3c419d3521b66c78e22da14fcf287b586e5df4b7 (diff) | |
download | xen-1b0a6f0d06c83d10a5583fe52c42bc45c2e277ab.tar.gz xen-1b0a6f0d06c83d10a5583fe52c42bc45c2e277ab.tar.bz2 xen-1b0a6f0d06c83d10a5583fe52c42bc45c2e277ab.zip |
ACPI: eliminate duplicate MADT parsing and unused SBF definitions
Use their proper counterparts in include/acpi/actbl*.h instead.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/acpi')
-rw-r--r-- | xen/arch/x86/acpi/boot.c | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c index 6262dac9d9..57f2bafba6 100644 --- a/xen/arch/x86/acpi/boot.c +++ b/xen/arch/x86/acpi/boot.c @@ -87,9 +87,9 @@ static int __init acpi_parse_madt(struct acpi_table_header *table) static int __init acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end) { - struct acpi_table_x2apic *processor = NULL; - - processor = (struct acpi_table_x2apic *)header; + struct acpi_madt_local_x2apic *processor = + container_of(header, struct acpi_madt_local_x2apic, header); + bool_t enabled = 0; if (BAD_MADT_ENTRY(processor, end)) return -EINVAL; @@ -97,8 +97,11 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end) acpi_table_print_madt_entry(header); /* Record local apic id only when enabled */ - if (processor->flags.enabled) - x86_acpiid_to_apicid[processor->acpi_uid] = processor->id; + if (processor->lapic_flags & ACPI_MADT_ENABLED) { + x86_acpiid_to_apicid[processor->uid] = + processor->local_apic_id; + enabled = 1; + } /* * We need to register disabled CPU as well to permit @@ -107,9 +110,7 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end) * to not preallocating memory for all NR_CPUS * when we use CPU hotplug. */ - mp_register_lapic(processor->id, /* X2APIC ID */ - processor->flags.enabled, /* Enabled? */ - 0); + mp_register_lapic(processor->local_apic_id, enabled, 0); return 0; } @@ -117,9 +118,9 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end) static int __init acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_lapic *processor = NULL; - - processor = (struct acpi_table_lapic *)header; + struct acpi_madt_local_apic *processor = + container_of(header, struct acpi_madt_local_apic, header); + bool_t enabled = 0; if (BAD_MADT_ENTRY(processor, end)) return -EINVAL; @@ -127,8 +128,10 @@ acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end) acpi_table_print_madt_entry(header); /* Record local apic id only when enabled */ - if (processor->flags.enabled) - x86_acpiid_to_apicid[processor->acpi_id] = processor->id; + if (processor->lapic_flags & ACPI_MADT_ENABLED) { + x86_acpiid_to_apicid[processor->processor_id] = processor->id; + enabled = 1; + } /* * We need to register disabled CPU as well to permit @@ -137,9 +140,7 @@ acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end) * to not preallocating memory for all NR_CPUS * when we use CPU hotplug. */ - mp_register_lapic(processor->id, /* APIC ID */ - processor->flags.enabled, /* Enabled? */ - 0); + mp_register_lapic(processor->id, enabled, 0); return 0; } @@ -148,9 +149,9 @@ static int __init acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_lapic_addr_ovr *lapic_addr_ovr = NULL; - - lapic_addr_ovr = (struct acpi_table_lapic_addr_ovr *)header; + struct acpi_madt_local_apic_override *lapic_addr_ovr = + container_of(header, struct acpi_madt_local_apic_override, + header); if (BAD_MADT_ENTRY(lapic_addr_ovr, end)) return -EINVAL; @@ -164,9 +165,9 @@ static int __init acpi_parse_x2apic_nmi(struct acpi_subtable_header *header, const unsigned long end) { - struct acpi_table_x2apic_nmi *x2apic_nmi = NULL; - - x2apic_nmi = (struct acpi_table_x2apic_nmi *)header; + struct acpi_madt_local_x2apic_nmi *x2apic_nmi = + container_of(header, struct acpi_madt_local_x2apic_nmi, + header); if (BAD_MADT_ENTRY(x2apic_nmi, end)) return -EINVAL; @@ -182,9 +183,8 @@ acpi_parse_x2apic_nmi(struct acpi_subtable_header *header, static int __init acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_lapic_nmi *lapic_nmi = NULL; - - lapic_nmi = (struct acpi_table_lapic_nmi *)header; + struct acpi_madt_local_apic_nmi *lapic_nmi = + container_of(header, struct acpi_madt_local_apic_nmi, header); if (BAD_MADT_ENTRY(lapic_nmi, end)) return -EINVAL; @@ -204,9 +204,8 @@ acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long e static int __init acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_ioapic *ioapic = NULL; - - ioapic = (struct acpi_table_ioapic *)header; + struct acpi_madt_io_apic *ioapic = + container_of(header, struct acpi_madt_io_apic, header); if (BAD_MADT_ENTRY(ioapic, end)) return -EINVAL; @@ -223,9 +222,9 @@ static int __init acpi_parse_int_src_ovr(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_int_src_ovr *intsrc = NULL; - - intsrc = (struct acpi_table_int_src_ovr *)header; + struct acpi_madt_interrupt_override *intsrc = + container_of(header, struct acpi_madt_interrupt_override, + header); if (BAD_MADT_ENTRY(intsrc, end)) return -EINVAL; @@ -233,14 +232,15 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header, acpi_table_print_madt_entry(header); if (acpi_skip_timer_override && - intsrc->bus_irq == 0 && intsrc->global_irq == 2) { + intsrc->source_irq == 0 && intsrc->global_irq == 2) { printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n"); return 0; } - mp_override_legacy_irq(intsrc->bus_irq, - intsrc->flags.polarity, - intsrc->flags.trigger, intsrc->global_irq); + mp_override_legacy_irq(intsrc->source_irq, + ACPI_MADT_GET_POLARITY(intsrc->inti_flags), + ACPI_MADT_GET_TRIGGER(intsrc->inti_flags), + intsrc->global_irq); return 0; } @@ -248,9 +248,8 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header, static int __init acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end) { - struct acpi_table_nmi_src *nmi_src = NULL; - - nmi_src = (struct acpi_table_nmi_src *)header; + struct acpi_madt_nmi_source *nmi_src = + container_of(header, struct acpi_madt_nmi_source, header); if (BAD_MADT_ENTRY(nmi_src, end)) return -EINVAL; @@ -270,7 +269,7 @@ static int __init acpi_parse_hpet(struct acpi_table_header *table) { struct acpi_table_hpet *hpet_tbl = (struct acpi_table_hpet *)table; - if (hpet_tbl->address.space_id != ACPI_SPACE_MEM) { + if (hpet_tbl->address.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) { printk(KERN_WARNING PREFIX "HPET timers must be located in " "memory.\n"); return -1; |