In an effort to enable -Wcast-function-type in the top-level Makefile to
support Control Flow Integrity builds, there are the need to remove all
the function callback casts in the acpi driver.
The first patch creates a macro called ACPI_DECLARE_SUBTABLE_PROBE_ENTRY
to initialize the acpi_probe_entry struct using the probe_subtbl field
instead of the probe_table field to avoid function cast mismatches.
The second patch modifies the IRQCHIP_ACPI_DECLARE macro to use the new
defined macro ACPI_DECLARE_SUBTABLE_PROBE_ENTRY instead of the macro
ACPI_DECLARE_PROBE_ENTRY. Also, modifies the prototype of the functions
used by the invocation of the IRQCHIP_ACPI_DECLARE macro to match all the
parameters.
The third patch removes the function cast in the ACPI_DECLARE_PROBE_ENTRY
macro to ensure that the functions passed as a last parameter to this macro
have the right prototype. This macro is used only in another macro
called "TIMER_ACPI_DECLARE". An this is used only in the file:
drivers/clocksource/arm_arch_timer.c
In this file, the function used in the last parameter of the
TIMER_ACPI_DECLARE macro already has the right prototype. So there is no
need to modify its prototype.