|
@@ -55,7 +55,7 @@
|
|
|
|
|
|
#define BAD_MADT_ENTRY(entry, end) ( \
|
|
|
(!entry) || (unsigned long)entry + sizeof(*entry) > end || \
|
|
|
- ((acpi_table_entry_header *)entry)->length < sizeof(*entry))
|
|
|
+ ((struct acpi_subtable_header *)entry)->length < sizeof(*entry))
|
|
|
|
|
|
#define PREFIX "ACPI: "
|
|
|
|
|
@@ -94,7 +94,7 @@ const char *acpi_get_sysname(void)
|
|
|
return "dig";
|
|
|
}
|
|
|
|
|
|
- xsdt = (struct acpi_table_xsdt *)__va(rsdp->xsdt_address);
|
|
|
+ xsdt = (struct acpi_table_xsdt *)__va(rsdp->xsdt_physical_address);
|
|
|
hdr = &xsdt->header;
|
|
|
if (strncmp(hdr->signature, ACPI_SIG_XSDT, sizeof(ACPI_SIG_XSDT) - 1)) {
|
|
|
printk(KERN_ERR
|
|
@@ -169,12 +169,12 @@ struct acpi_table_madt *acpi_madt __initdata;
|
|
|
static u8 has_8259;
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_lapic_addr_ovr(acpi_table_entry_header * header,
|
|
|
+acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
|
|
|
const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_lapic_addr_ovr *lapic;
|
|
|
+ struct acpi_madt_local_apic_override *lapic;
|
|
|
|
|
|
- lapic = (struct acpi_table_lapic_addr_ovr *)header;
|
|
|
+ lapic = (struct acpi_madt_local_apic_override *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(lapic, end))
|
|
|
return -EINVAL;
|
|
@@ -187,21 +187,20 @@ acpi_parse_lapic_addr_ovr(acpi_table_entry_header * header,
|
|
|
}
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_lsapic(acpi_table_entry_header * header, const unsigned long end)
|
|
|
+acpi_parse_lsapic(struct acpi_subtable_header * header, const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_lsapic *lsapic;
|
|
|
+ struct acpi_madt_local_sapic *lsapic;
|
|
|
|
|
|
- lsapic = (struct acpi_table_lsapic *)header;
|
|
|
+ lsapic = (struct acpi_madt_local_sapic *)header;
|
|
|
|
|
|
- if (BAD_MADT_ENTRY(lsapic, end))
|
|
|
- return -EINVAL;
|
|
|
+ /*Skip BAD_MADT_ENTRY check, as lsapic size could vary */
|
|
|
|
|
|
- if (lsapic->flags.enabled) {
|
|
|
+ if (lsapic->lapic_flags & ACPI_MADT_ENABLED) {
|
|
|
#ifdef CONFIG_SMP
|
|
|
smp_boot_data.cpu_phys_id[available_cpus] =
|
|
|
(lsapic->id << 8) | lsapic->eid;
|
|
|
#endif
|
|
|
- ia64_acpiid_to_sapicid[lsapic->acpi_id] =
|
|
|
+ ia64_acpiid_to_sapicid[lsapic->processor_id] =
|
|
|
(lsapic->id << 8) | lsapic->eid;
|
|
|
++available_cpus;
|
|
|
}
|
|
@@ -211,11 +210,11 @@ acpi_parse_lsapic(acpi_table_entry_header * header, const unsigned long end)
|
|
|
}
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_lapic_nmi(acpi_table_entry_header * header, const unsigned long end)
|
|
|
+acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_lapic_nmi *lacpi_nmi;
|
|
|
+ struct acpi_madt_local_apic_nmi *lacpi_nmi;
|
|
|
|
|
|
- lacpi_nmi = (struct acpi_table_lapic_nmi *)header;
|
|
|
+ lacpi_nmi = (struct acpi_madt_local_apic_nmi *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(lacpi_nmi, end))
|
|
|
return -EINVAL;
|
|
@@ -225,11 +224,11 @@ acpi_parse_lapic_nmi(acpi_table_entry_header * header, const unsigned long end)
|
|
|
}
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_iosapic(acpi_table_entry_header * header, const unsigned long end)
|
|
|
+acpi_parse_iosapic(struct acpi_subtable_header * header, const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_iosapic *iosapic;
|
|
|
+ struct acpi_madt_io_sapic *iosapic;
|
|
|
|
|
|
- iosapic = (struct acpi_table_iosapic *)header;
|
|
|
+ iosapic = (struct acpi_madt_io_sapic *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(iosapic, end))
|
|
|
return -EINVAL;
|
|
@@ -240,13 +239,13 @@ acpi_parse_iosapic(acpi_table_entry_header * header, const unsigned long end)
|
|
|
static unsigned int __initdata acpi_madt_rev;
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_plat_int_src(acpi_table_entry_header * header,
|
|
|
+acpi_parse_plat_int_src(struct acpi_subtable_header * header,
|
|
|
const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_plat_int_src *plintsrc;
|
|
|
+ struct acpi_madt_interrupt_source *plintsrc;
|
|
|
int vector;
|
|
|
|
|
|
- plintsrc = (struct acpi_table_plat_int_src *)header;
|
|
|
+ plintsrc = (struct acpi_madt_interrupt_source *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(plintsrc, end))
|
|
|
return -EINVAL;
|
|
@@ -257,19 +256,19 @@ acpi_parse_plat_int_src(acpi_table_entry_header * header,
|
|
|
*/
|
|
|
vector = iosapic_register_platform_intr(plintsrc->type,
|
|
|
plintsrc->global_irq,
|
|
|
- plintsrc->iosapic_vector,
|
|
|
+ plintsrc->io_sapic_vector,
|
|
|
plintsrc->eid,
|
|
|
plintsrc->id,
|
|
|
- (plintsrc->flags.polarity ==
|
|
|
- 1) ? IOSAPIC_POL_HIGH :
|
|
|
- IOSAPIC_POL_LOW,
|
|
|
- (plintsrc->flags.trigger ==
|
|
|
- 1) ? IOSAPIC_EDGE :
|
|
|
- IOSAPIC_LEVEL);
|
|
|
+ ((plintsrc->inti_flags & ACPI_MADT_POLARITY_MASK) ==
|
|
|
+ ACPI_MADT_POLARITY_ACTIVE_HIGH) ?
|
|
|
+ IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
|
|
|
+ ((plintsrc->inti_flags & ACPI_MADT_TRIGGER_MASK) ==
|
|
|
+ ACPI_MADT_TRIGGER_EDGE) ?
|
|
|
+ IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
|
|
|
|
|
platform_intr_list[plintsrc->type] = vector;
|
|
|
if (acpi_madt_rev > 1) {
|
|
|
- acpi_cpei_override = plintsrc->plint_flags.cpei_override_flag;
|
|
|
+ acpi_cpei_override = plintsrc->flags & ACPI_MADT_CPEI_OVERRIDE;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -324,30 +323,32 @@ unsigned int get_cpei_target_cpu(void)
|
|
|
}
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_int_src_ovr(acpi_table_entry_header * header,
|
|
|
+acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
|
|
|
const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_int_src_ovr *p;
|
|
|
+ struct acpi_madt_interrupt_override *p;
|
|
|
|
|
|
- p = (struct acpi_table_int_src_ovr *)header;
|
|
|
+ p = (struct acpi_madt_interrupt_override *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(p, end))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- iosapic_override_isa_irq(p->bus_irq, p->global_irq,
|
|
|
- (p->flags.polarity ==
|
|
|
- 1) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
|
|
|
- (p->flags.trigger ==
|
|
|
- 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
|
|
+ iosapic_override_isa_irq(p->source_irq, p->global_irq,
|
|
|
+ ((p->inti_flags & ACPI_MADT_POLARITY_MASK) ==
|
|
|
+ ACPI_MADT_POLARITY_ACTIVE_HIGH) ?
|
|
|
+ IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
|
|
|
+ ((p->inti_flags & ACPI_MADT_TRIGGER_MASK) ==
|
|
|
+ ACPI_MADT_TRIGGER_EDGE) ?
|
|
|
+ IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
static int __init
|
|
|
-acpi_parse_nmi_src(acpi_table_entry_header * header, const unsigned long end)
|
|
|
+acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end)
|
|
|
{
|
|
|
- struct acpi_table_nmi_src *nmi_src;
|
|
|
+ struct acpi_madt_nmi_source *nmi_src;
|
|
|
|
|
|
- nmi_src = (struct acpi_table_nmi_src *)header;
|
|
|
+ nmi_src = (struct acpi_madt_nmi_source *)header;
|
|
|
|
|
|
if (BAD_MADT_ENTRY(nmi_src, end))
|
|
|
return -EINVAL;
|
|
@@ -371,12 +372,12 @@ static void __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size)
|
|
|
+static int __init acpi_parse_madt(struct acpi_table_header *table)
|
|
|
{
|
|
|
- if (!phys_addr || !size)
|
|
|
+ if (!table)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- acpi_madt = (struct acpi_table_madt *)__va(phys_addr);
|
|
|
+ acpi_madt = (struct acpi_table_madt *)table;
|
|
|
|
|
|
acpi_madt_rev = acpi_madt->header.revision;
|
|
|
|
|
@@ -384,14 +385,14 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size)
|
|
|
#ifdef CONFIG_ITANIUM
|
|
|
has_8259 = 1; /* Firmware on old Itanium systems is broken */
|
|
|
#else
|
|
|
- has_8259 = acpi_madt->flags.pcat_compat;
|
|
|
+ has_8259 = acpi_madt->flags & ACPI_MADT_PCAT_COMPAT;
|
|
|
#endif
|
|
|
iosapic_system_init(has_8259);
|
|
|
|
|
|
/* Get base address of IPI Message Block */
|
|
|
|
|
|
- if (acpi_madt->lapic_address)
|
|
|
- ipi_base_addr = ioremap(acpi_madt->lapic_address, 0);
|
|
|
+ if (acpi_madt->address)
|
|
|
+ ipi_base_addr = ioremap(acpi_madt->address, 0);
|
|
|
|
|
|
printk(KERN_INFO PREFIX "Local APIC address %p\n", ipi_base_addr);
|
|
|
|
|
@@ -413,23 +414,24 @@ static u32 __devinitdata pxm_flag[PXM_FLAG_LEN];
|
|
|
#define pxm_bit_test(bit) (test_bit(bit,(void *)pxm_flag))
|
|
|
static struct acpi_table_slit __initdata *slit_table;
|
|
|
|
|
|
-static int get_processor_proximity_domain(struct acpi_table_processor_affinity *pa)
|
|
|
+static int get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
|
|
|
{
|
|
|
int pxm;
|
|
|
|
|
|
- pxm = pa->proximity_domain;
|
|
|
+ pxm = pa->proximity_domain_lo;
|
|
|
if (ia64_platform_is("sn2"))
|
|
|
- pxm += pa->reserved[0] << 8;
|
|
|
+ pxm += pa->proximity_domain_hi[0] << 8;
|
|
|
return pxm;
|
|
|
}
|
|
|
|
|
|
-static int get_memory_proximity_domain(struct acpi_table_memory_affinity *ma)
|
|
|
+static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
|
|
|
{
|
|
|
int pxm;
|
|
|
|
|
|
pxm = ma->proximity_domain;
|
|
|
if (ia64_platform_is("sn2"))
|
|
|
- pxm += ma->reserved1[0] << 8;
|
|
|
+ pxm += ma->reserved << 8;
|
|
|
+
|
|
|
return pxm;
|
|
|
}
|
|
|
|
|
@@ -442,7 +444,7 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
|
|
|
u32 len;
|
|
|
|
|
|
len = sizeof(struct acpi_table_header) + 8
|
|
|
- + slit->localities * slit->localities;
|
|
|
+ + slit->locality_count * slit->locality_count;
|
|
|
if (slit->header.length != len) {
|
|
|
printk(KERN_ERR
|
|
|
"ACPI 2.0 SLIT: size mismatch: %d expected, %d actual\n",
|
|
@@ -454,11 +456,11 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
|
|
|
}
|
|
|
|
|
|
void __init
|
|
|
-acpi_numa_processor_affinity_init(struct acpi_table_processor_affinity *pa)
|
|
|
+acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
|
|
|
{
|
|
|
int pxm;
|
|
|
|
|
|
- if (!pa->flags.enabled)
|
|
|
+ if (!(pa->flags & ACPI_SRAT_CPU_ENABLED))
|
|
|
return;
|
|
|
|
|
|
pxm = get_processor_proximity_domain(pa);
|
|
@@ -467,14 +469,14 @@ acpi_numa_processor_affinity_init(struct acpi_table_processor_affinity *pa)
|
|
|
pxm_bit_set(pxm);
|
|
|
|
|
|
node_cpuid[srat_num_cpus].phys_id =
|
|
|
- (pa->apic_id << 8) | (pa->lsapic_eid);
|
|
|
+ (pa->apic_id << 8) | (pa->local_sapic_eid);
|
|
|
/* nid should be overridden as logical node id later */
|
|
|
node_cpuid[srat_num_cpus].nid = pxm;
|
|
|
srat_num_cpus++;
|
|
|
}
|
|
|
|
|
|
void __init
|
|
|
-acpi_numa_memory_affinity_init(struct acpi_table_memory_affinity *ma)
|
|
|
+acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
|
|
|
{
|
|
|
unsigned long paddr, size;
|
|
|
int pxm;
|
|
@@ -483,13 +485,11 @@ acpi_numa_memory_affinity_init(struct acpi_table_memory_affinity *ma)
|
|
|
pxm = get_memory_proximity_domain(ma);
|
|
|
|
|
|
/* fill node memory chunk structure */
|
|
|
- paddr = ma->base_addr_hi;
|
|
|
- paddr = (paddr << 32) | ma->base_addr_lo;
|
|
|
- size = ma->length_hi;
|
|
|
- size = (size << 32) | ma->length_lo;
|
|
|
+ paddr = ma->base_address;
|
|
|
+ size = ma->length;
|
|
|
|
|
|
/* Ignore disabled entries */
|
|
|
- if (!ma->flags.enabled)
|
|
|
+ if (!(ma->flags & ACPI_SRAT_MEM_ENABLED))
|
|
|
return;
|
|
|
|
|
|
/* record this node in proximity bitmap */
|
|
@@ -560,16 +560,16 @@ void __init acpi_numa_arch_fixup(void)
|
|
|
if (!slit_table)
|
|
|
return;
|
|
|
memset(numa_slit, -1, sizeof(numa_slit));
|
|
|
- for (i = 0; i < slit_table->localities; i++) {
|
|
|
+ for (i = 0; i < slit_table->locality_count; i++) {
|
|
|
if (!pxm_bit_test(i))
|
|
|
continue;
|
|
|
node_from = pxm_to_node(i);
|
|
|
- for (j = 0; j < slit_table->localities; j++) {
|
|
|
+ for (j = 0; j < slit_table->locality_count; j++) {
|
|
|
if (!pxm_bit_test(j))
|
|
|
continue;
|
|
|
node_to = pxm_to_node(j);
|
|
|
node_distance(node_from, node_to) =
|
|
|
- slit_table->entry[i * slit_table->localities + j];
|
|
|
+ slit_table->entry[i * slit_table->locality_count + j];
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -614,15 +614,15 @@ void acpi_unregister_gsi(u32 gsi)
|
|
|
|
|
|
EXPORT_SYMBOL(acpi_unregister_gsi);
|
|
|
|
|
|
-static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size)
|
|
|
+static int __init acpi_parse_fadt(struct acpi_table_header *table)
|
|
|
{
|
|
|
struct acpi_table_header *fadt_header;
|
|
|
struct acpi_table_fadt *fadt;
|
|
|
|
|
|
- if (!phys_addr || !size)
|
|
|
+ if (!table)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- fadt_header = (struct acpi_table_header *)__va(phys_addr);
|
|
|
+ fadt_header = (struct acpi_table_header *)table;
|
|
|
if (fadt_header->revision != 3)
|
|
|
return -ENODEV; /* Only deal with ACPI 2.0 FADT */
|
|
|
|
|
@@ -655,7 +655,7 @@ int __init acpi_boot_init(void)
|
|
|
* information -- the successor to MPS tables.
|
|
|
*/
|
|
|
|
|
|
- if (acpi_table_parse(ACPI_APIC, acpi_parse_madt) < 1) {
|
|
|
+ if (acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt) < 1) {
|
|
|
printk(KERN_ERR PREFIX "Can't find MADT\n");
|
|
|
goto skip_madt;
|
|
|
}
|
|
@@ -663,40 +663,40 @@ int __init acpi_boot_init(void)
|
|
|
/* Local APIC */
|
|
|
|
|
|
if (acpi_table_parse_madt
|
|
|
- (ACPI_MADT_LAPIC_ADDR_OVR, acpi_parse_lapic_addr_ovr, 0) < 0)
|
|
|
+ (ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE, acpi_parse_lapic_addr_ovr, 0) < 0)
|
|
|
printk(KERN_ERR PREFIX
|
|
|
"Error parsing LAPIC address override entry\n");
|
|
|
|
|
|
- if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_parse_lsapic, NR_CPUS)
|
|
|
+ if (acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_SAPIC, acpi_parse_lsapic, NR_CPUS)
|
|
|
< 1)
|
|
|
printk(KERN_ERR PREFIX
|
|
|
"Error parsing MADT - no LAPIC entries\n");
|
|
|
|
|
|
- if (acpi_table_parse_madt(ACPI_MADT_LAPIC_NMI, acpi_parse_lapic_nmi, 0)
|
|
|
+ if (acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_NMI, acpi_parse_lapic_nmi, 0)
|
|
|
< 0)
|
|
|
printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n");
|
|
|
|
|
|
/* I/O APIC */
|
|
|
|
|
|
if (acpi_table_parse_madt
|
|
|
- (ACPI_MADT_IOSAPIC, acpi_parse_iosapic, NR_IOSAPICS) < 1)
|
|
|
+ (ACPI_MADT_TYPE_IO_SAPIC, acpi_parse_iosapic, NR_IOSAPICS) < 1)
|
|
|
printk(KERN_ERR PREFIX
|
|
|
"Error parsing MADT - no IOSAPIC entries\n");
|
|
|
|
|
|
/* System-Level Interrupt Routing */
|
|
|
|
|
|
if (acpi_table_parse_madt
|
|
|
- (ACPI_MADT_PLAT_INT_SRC, acpi_parse_plat_int_src,
|
|
|
+ (ACPI_MADT_TYPE_INTERRUPT_SOURCE, acpi_parse_plat_int_src,
|
|
|
ACPI_MAX_PLATFORM_INTERRUPTS) < 0)
|
|
|
printk(KERN_ERR PREFIX
|
|
|
"Error parsing platform interrupt source entry\n");
|
|
|
|
|
|
if (acpi_table_parse_madt
|
|
|
- (ACPI_MADT_INT_SRC_OVR, acpi_parse_int_src_ovr, 0) < 0)
|
|
|
+ (ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr, 0) < 0)
|
|
|
printk(KERN_ERR PREFIX
|
|
|
"Error parsing interrupt source overrides entry\n");
|
|
|
|
|
|
- if (acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src, 0) < 0)
|
|
|
+ if (acpi_table_parse_madt(ACPI_MADT_TYPE_NMI_SOURCE, acpi_parse_nmi_src, 0) < 0)
|
|
|
printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
|
|
|
skip_madt:
|
|
|
|
|
@@ -706,7 +706,7 @@ int __init acpi_boot_init(void)
|
|
|
* gets interrupts such as power and sleep buttons. If it's not
|
|
|
* on a Legacy interrupt, it needs to be setup.
|
|
|
*/
|
|
|
- if (acpi_table_parse(ACPI_FADT, acpi_parse_fadt) < 1)
|
|
|
+ if (acpi_table_parse(ACPI_SIG_FADT, acpi_parse_fadt) < 1)
|
|
|
printk(KERN_ERR PREFIX "Can't find FADT\n");
|
|
|
|
|
|
#ifdef CONFIG_SMP
|
|
@@ -839,7 +839,7 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
|
|
|
{
|
|
|
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
|
|
union acpi_object *obj;
|
|
|
- struct acpi_table_lsapic *lsapic;
|
|
|
+ struct acpi_madt_local_sapic *lsapic;
|
|
|
cpumask_t tmp_map;
|
|
|
long physid;
|
|
|
int cpu;
|
|
@@ -851,16 +851,16 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
|
|
|
return -EINVAL;
|
|
|
|
|
|
obj = buffer.pointer;
|
|
|
- if (obj->type != ACPI_TYPE_BUFFER ||
|
|
|
- obj->buffer.length < sizeof(*lsapic)) {
|
|
|
+ if (obj->type != ACPI_TYPE_BUFFER)
|
|
|
+ {
|
|
|
kfree(buffer.pointer);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- lsapic = (struct acpi_table_lsapic *)obj->buffer.pointer;
|
|
|
+ lsapic = (struct acpi_madt_local_sapic *)obj->buffer.pointer;
|
|
|
|
|
|
- if ((lsapic->header.type != ACPI_MADT_LSAPIC) ||
|
|
|
- (!lsapic->flags.enabled)) {
|
|
|
+ if ((lsapic->header.type != ACPI_MADT_TYPE_LOCAL_SAPIC) ||
|
|
|
+ (!lsapic->lapic_flags & ACPI_MADT_ENABLED)) {
|
|
|
kfree(buffer.pointer);
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -880,7 +880,7 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
|
|
|
|
|
|
cpu_set(cpu, cpu_present_map);
|
|
|
ia64_cpu_to_sapicid[cpu] = physid;
|
|
|
- ia64_acpiid_to_sapicid[lsapic->acpi_id] = ia64_cpu_to_sapicid[cpu];
|
|
|
+ ia64_acpiid_to_sapicid[lsapic->processor_id] = ia64_cpu_to_sapicid[cpu];
|
|
|
|
|
|
*pcpu = cpu;
|
|
|
return (0);
|
|
@@ -917,7 +917,7 @@ acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret)
|
|
|
{
|
|
|
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
|
|
union acpi_object *obj;
|
|
|
- struct acpi_table_iosapic *iosapic;
|
|
|
+ struct acpi_madt_io_sapic *iosapic;
|
|
|
unsigned int gsi_base;
|
|
|
int pxm, node;
|
|
|
|
|
@@ -935,9 +935,9 @@ acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret)
|
|
|
return AE_OK;
|
|
|
}
|
|
|
|
|
|
- iosapic = (struct acpi_table_iosapic *)obj->buffer.pointer;
|
|
|
+ iosapic = (struct acpi_madt_io_sapic *)obj->buffer.pointer;
|
|
|
|
|
|
- if (iosapic->header.type != ACPI_MADT_IOSAPIC) {
|
|
|
+ if (iosapic->header.type != ACPI_MADT_TYPE_IO_SAPIC) {
|
|
|
kfree(buffer.pointer);
|
|
|
return AE_OK;
|
|
|
}
|