struct acpi_madt_generic_interrupt *processor =
container_of(header, struct acpi_madt_generic_interrupt, header);
- if ( BAD_MADT_ENTRY(processor, end) )
+ if ( BAD_MADT_GICC_ENTRY(processor, end) )
return -EINVAL;
acpi_table_print_madt_entry(header);
host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
header);
- size = sizeof(struct acpi_madt_generic_interrupt);
+
+ size = ACPI_MADT_GICC_LENGTH;
/* Add Generic Interrupt */
for ( i = 0; i < d->max_vcpus; i++ )
{
struct acpi_madt_generic_interrupt *processor =
container_of(header, struct acpi_madt_generic_interrupt, header);
- if ( BAD_MADT_ENTRY(processor, end) )
+ if ( BAD_MADT_GICC_ENTRY(processor, end) )
return -EINVAL;
/* Read from APIC table and fill up the GIC variables */
host_gicc = container_of(header, struct acpi_madt_generic_interrupt,
header);
- size = sizeof(struct acpi_madt_generic_interrupt);
+ size = ACPI_MADT_GICC_LENGTH;
for ( i = 0; i < d->max_vcpus; i++ )
{
gicc = (struct acpi_madt_generic_interrupt *)(base_ptr + table_len);
struct acpi_madt_generic_interrupt *processor =
container_of(header, struct acpi_madt_generic_interrupt, header);
- if ( BAD_MADT_ENTRY(processor, end) )
+ if ( BAD_MADT_GICC_ENTRY(processor, end) )
return -EINVAL;
/* Read from APIC table and fill up the GIC variables */
struct acpi_madt_generic_interrupt *cpuif;
cpuif = (struct acpi_madt_generic_interrupt *)header;
- if ( BAD_MADT_ENTRY(cpuif, end) || !cpuif->gicr_base_address )
+ if ( BAD_MADT_GICC_ENTRY(cpuif, end) || !cpuif->gicr_base_address )
return -EINVAL;
return 0;
unsigned long madt_size;
madt_size = sizeof(struct acpi_table_madt)
- + sizeof(struct acpi_madt_generic_interrupt) * d->max_vcpus
+ + ACPI_MADT_GICC_LENGTH * d->max_vcpus
+ sizeof(struct acpi_madt_generic_distributor)
+ gic_hw_ops->get_hwdom_extra_madt_size(d);