irqchip: Provide stronger type checking for IRQCHIP_MATCH/IRQCHIP_DECLARE
authorMarc Zyngier <maz@kernel.org>
Wed, 20 Oct 2021 08:33:21 +0000 (09:33 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 20 Oct 2021 18:33:53 +0000 (19:33 +0100)
commitf1985002839af80d6c84e9537834a81fb1364d6e
tree95894a3dec47034acfca58a1e9b72aa8216cea27
parent9e1ff307c779ce1f0f810c7ecce3d95bbae40896
irqchip: Provide stronger type checking for IRQCHIP_MATCH/IRQCHIP_DECLARE

Both IRQCHIP_DECLARE() and IRQCHIP_MATCH() use an underlying of_device_id()
structure to encode the matching property and the init callback.
However, this callback is stored in as a void * pointer, which obviously
defeat any attempt at stronger type checking.

Work around this by providing a new macro that builds on top of the
__typecheck() primitive, and that can be used to warn when there is
a discrepency between the drivers and core code.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211020104527.3066268-1-maz@kernel.org
include/linux/irqchip.h