Now that we have introduced the bad_madt_entry() function, and that function is being invoked in acpi_table_parse_madt() for us, there is no longer any need to use the BAD_MADT_ENTRY macro, or in the case of arm64, the BAD_MADT_GICC_ENTRY, too.
Signed-off-by: Al Stone al.stone@linaro.org --- arch/arm64/include/asm/acpi.h | 8 -------- arch/arm64/kernel/perf_event.c | 3 --- arch/arm64/kernel/smp.c | 2 -- drivers/irqchip/irq-gic-v2m.c | 2 -- drivers/irqchip/irq-gic.c | 6 ------ 5 files changed, 21 deletions(-)
diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h index 0291f6e..4657ed9 100644 --- a/arch/arm64/include/asm/acpi.h +++ b/arch/arm64/include/asm/acpi.h @@ -19,14 +19,6 @@ #include <asm/psci.h> #include <asm/smp_plat.h>
-/* Macros for consistency checks of the GICC subtable of MADT */ -#define ACPI_MADT_GICC_LENGTH \ - (acpi_gbl_FADT.header.revision < 6 ? 76 : 80) - -#define BAD_MADT_GICC_ENTRY(entry, end) \ - (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) || \ - (entry)->header.length != ACPI_MADT_GICC_LENGTH) - /* Basic configuration for ACPI */ #ifdef CONFIG_ACPI /* ACPI table mapping after acpi_gbl_permanent_mmap is set */ diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index a7b65c0..ee8d288 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c @@ -1397,9 +1397,6 @@ acpi_parse_pmu_irqs(struct acpi_subtable_header *header, u64 mpidr;
gic = (struct acpi_madt_generic_interrupt *)header; - if (BAD_MADT_ENTRY(gic, end)) - return -EINVAL; - mpidr = gic->arm_mpidr & MPIDR_HWID_BITMASK;
for_each_possible_cpu(cpu) { diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 45d56f3..ae123f9 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -440,8 +440,6 @@ acpi_parse_gic_cpu_interface(struct acpi_subtable_header *header, struct acpi_madt_generic_interrupt *processor;
processor = (struct acpi_madt_generic_interrupt *)header; - if (BAD_MADT_GICC_ENTRY(processor, end)) - return -EINVAL;
acpi_table_print_madt_entry(header);
diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c index 235524d..ede6660 100644 --- a/drivers/irqchip/irq-gic-v2m.c +++ b/drivers/irqchip/irq-gic-v2m.c @@ -352,8 +352,6 @@ gic_acpi_parse_madt_msi(struct acpi_subtable_header *header, struct acpi_madt_generic_msi_frame *frame;
frame = (struct acpi_madt_generic_msi_frame *)header; - if (BAD_MADT_ENTRY(frame, end)) - return -EINVAL;
if (msi_frame) pr_warn("Only one GIC MSI FRAME supported.\n"); diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 14de9ba..65de6ac 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c @@ -1065,9 +1065,6 @@ gic_acpi_parse_madt_cpu(struct acpi_subtable_header *header,
processor = (struct acpi_madt_generic_interrupt *)header;
- if (BAD_MADT_GICC_ENTRY(processor, end)) - return -EINVAL; - /* * There is no support for non-banked GICv1/2 register in ACPI spec. * All CPU interface addresses have to be the same. @@ -1089,9 +1086,6 @@ gic_acpi_parse_madt_distributor(struct acpi_subtable_header *header,
dist = (struct acpi_madt_generic_distributor *)header;
- if (BAD_MADT_ENTRY(dist, end)) - return -EINVAL; - dist_phy_base = dist->base_address; return 0; }