IRQCHIP_DECLARE() is backed by macros that perform some elementary type checking on the probe function. Unfortunately, IRQCHIP_MATCH() doesn't, risking difficult debugging sessions... Rewrite IRQCHIP_MATCH() in terms of _OF_DECLARE_ELMT() restore the missing type safety. Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> --- include/linux/irqchip.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/irqchip.h b/include/linux/irqchip.h index 67351aac65ef..f8f25e9f8200 100644 --- a/include/linux/irqchip.h +++ b/include/linux/irqchip.h @@ -33,7 +33,7 @@ extern int platform_irqchip_probe(struct platform_device *pdev); #define IRQCHIP_PLATFORM_DRIVER_BEGIN(drv_name) \ static const struct of_device_id drv_name##_irqchip_match_table[] = { -#define IRQCHIP_MATCH(compat, fn) { .compatible = compat, .data = fn }, +#define IRQCHIP_MATCH(compat, fn) _OF_DECLARE_ELMT(compat, fn, of_init_fn_2) #define IRQCHIP_PLATFORM_DRIVER_END(drv_name) \ {}, \ -- 2.28.0