acpi: Create subtable parsing infrastructure
Parsing entries in an ACPI table had assumed a generic header structure. There is no standard ACPI header, though, so less common layouts with different field sizes required custom parsers to go through their subtable entry list. Create the infrastructure for adding different table types so parsing the entries array may be more reused for all ACPI system tables and the common code doesn't need to be duplicated. Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Keith Busch <keith.busch@intel.com> Tested-by: Brice Goglin <Brice.Goglin@inria.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
c03a0fd0b6
commit
60574d1e05
@@ -177,7 +177,7 @@ struct acpi_table_madt *acpi_madt __initdata;
|
||||
static u8 has_8259;
|
||||
|
||||
static int __init
|
||||
acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
|
||||
acpi_parse_lapic_addr_ovr(union acpi_subtable_headers * header,
|
||||
const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_local_apic_override *lapic;
|
||||
@@ -195,7 +195,7 @@ acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
|
||||
}
|
||||
|
||||
static int __init
|
||||
acpi_parse_lsapic(struct acpi_subtable_header * header, const unsigned long end)
|
||||
acpi_parse_lsapic(union acpi_subtable_headers *header, const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_local_sapic *lsapic;
|
||||
|
||||
@@ -216,7 +216,7 @@ acpi_parse_lsapic(struct acpi_subtable_header * header, const unsigned long end)
|
||||
}
|
||||
|
||||
static int __init
|
||||
acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long end)
|
||||
acpi_parse_lapic_nmi(union acpi_subtable_headers * header, const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_local_apic_nmi *lacpi_nmi;
|
||||
|
||||
@@ -230,7 +230,7 @@ acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long e
|
||||
}
|
||||
|
||||
static int __init
|
||||
acpi_parse_iosapic(struct acpi_subtable_header * header, const unsigned long end)
|
||||
acpi_parse_iosapic(union acpi_subtable_headers * header, const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_io_sapic *iosapic;
|
||||
|
||||
@@ -245,7 +245,7 @@ acpi_parse_iosapic(struct acpi_subtable_header * header, const unsigned long end
|
||||
static unsigned int __initdata acpi_madt_rev;
|
||||
|
||||
static int __init
|
||||
acpi_parse_plat_int_src(struct acpi_subtable_header * header,
|
||||
acpi_parse_plat_int_src(union acpi_subtable_headers * header,
|
||||
const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_interrupt_source *plintsrc;
|
||||
@@ -329,7 +329,7 @@ unsigned int get_cpei_target_cpu(void)
|
||||
}
|
||||
|
||||
static int __init
|
||||
acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
|
||||
acpi_parse_int_src_ovr(union acpi_subtable_headers * header,
|
||||
const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_interrupt_override *p;
|
||||
@@ -350,7 +350,7 @@ 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)
|
||||
acpi_parse_nmi_src(union acpi_subtable_headers * header, const unsigned long end)
|
||||
{
|
||||
struct acpi_madt_nmi_source *nmi_src;
|
||||
|
||||
|
Reference in New Issue
Block a user