Hi Keith, I love your patch! Yet something to improve: [auto build test ERROR on pm/linux-next] [also build test ERROR on v4.20-rc7 next-20181219] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Keith-Busch/acpi-Create-subtable-parsing-infrastructure/20181211-154110 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next config: arm64-defconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm64 All errors (new ones prefixed by >>): drivers//irqchip/irq-gic.c: In function 'acpi_gic_redist_is_present': >> drivers//irqchip/irq-gic.c:1552:10: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] acpi_dummy_func, 0) > 0; ^~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic.c:36:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ drivers//irqchip/irq-gic.c: In function 'gic_v2_acpi_init': drivers//irqchip/irq-gic.c:1614:11: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_parse_madt_cpu, 0); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic.c:36:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers//irqchip/irq-gic-v2m.c: In function 'gicv2m_acpi_init': >> drivers//irqchip/irq-gic-v2m.c:495:11: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] acpi_parse_madt_msi, 0); ^~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v2m.c:18:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers//irqchip/irq-gic-v3.c: In function 'gic_acpi_collect_gicr_base': >> drivers//irqchip/irq-gic-v3.c:1417:17: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] redist_parser = gic_acpi_parse_madt_redist; ^ drivers//irqchip/irq-gic-v3.c: In function 'gic_acpi_count_gicr_regions': drivers//irqchip/irq-gic-v3.c:1468:11: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_match_gicr, 0); ^~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3.c:20:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ drivers//irqchip/irq-gic-v3.c:1475:11: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_match_gicc, 0); ^~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3.c:20:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ drivers//irqchip/irq-gic-v3.c: In function 'gic_acpi_collect_virt_info': drivers//irqchip/irq-gic-v3.c:1542:11: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_parse_virt_madt_gicc, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3.c:20:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers//irqchip/irq-gic-v3-its.c: In function 'acpi_table_parse_srat_its': >> drivers//irqchip/irq-gic-v3-its.c:3812:4: error: passing argument 4 of 'acpi_table_parse_entries' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_match_srat_its, 0); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3-its.c:18:0: include/linux/acpi.h:242:12: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int __init acpi_table_parse_entries(char *id, unsigned long table_size, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers//irqchip/irq-gic-v3-its.c:3826:4: error: passing argument 4 of 'acpi_table_parse_entries' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_parse_srat_its, 0); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3-its.c:18:0: include/linux/acpi.h:242:12: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int __init acpi_table_parse_entries(char *id, unsigned long table_size, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers//irqchip/irq-gic-v3-its.c: In function 'its_acpi_probe': >> drivers//irqchip/irq-gic-v3-its.c:3884:10: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] gic_acpi_parse_madt_its, 0); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers//irqchip/irq-gic-v3-its.c:18:0: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers//irqchip/irq-gic-v3-its-platform-msi.c: In function 'its_pmsi_acpi_init': >> drivers//irqchip/irq-gic-v3-its-platform-msi.c:147:10: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] its_pmsi_parse_madt, 0); ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/acpi_iort.h:22:0, from drivers//irqchip/irq-gic-v3-its-platform-msi.c:18: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers//irqchip/irq-gic-v3-its-pci-msi.c: In function 'its_pci_acpi_msi_init': >> drivers//irqchip/irq-gic-v3-its-pci-msi.c:191:10: error: passing argument 2 of 'acpi_table_parse_madt' from incompatible pointer type [-Werror=incompatible-pointer-types] its_pci_msi_parse_madt, 0); ^~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/acpi_iort.h:22:0, from drivers//irqchip/irq-gic-v3-its-pci-msi.c:18: include/linux/acpi.h:249:5: note: expected 'acpi_tbl_entry_handler {aka int (*)(union acpi_subtable_headers *, const long unsigned int)}' but argument is of type 'int (*)(struct acpi_subtable_header *, const long unsigned int)' int acpi_table_parse_madt(enum acpi_madt_type id, ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/acpi_table_parse_madt +1552 drivers//irqchip/irq-gic.c d60fc3892 Tomasz Nowicki 2015-03-24 1548 f26527b14 Marc Zyngier 2015-09-28 1549 static bool __init acpi_gic_redist_is_present(void) f26527b14 Marc Zyngier 2015-09-28 1550 { f26527b14 Marc Zyngier 2015-09-28 1551 return acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR, f26527b14 Marc Zyngier 2015-09-28 @1552 acpi_dummy_func, 0) > 0; f26527b14 Marc Zyngier 2015-09-28 1553 } d60fc3892 Tomasz Nowicki 2015-03-24 1554 :::::: The code at line 1552 was first introduced by commit :::::: f26527b1428f379fbd7edf779854c3b41bc0b3e5 irqchip / GIC: Convert the GIC driver to ACPI probing :::::: TO: Marc Zyngier :::::: CC: Rafael J. Wysocki --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation