x86/devicetree: Fix device IRQ settings in DT
authorIvan Gorinov <ivan.gorinov@intel.com>
Wed, 7 Mar 2018 19:46:53 +0000 (11:46 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 8 Mar 2018 08:59:53 +0000 (09:59 +0100)
commit0a5169add90e43ab45ab1ba34223b8583fcaf675
tree992b2beb9fe9e4985f61b4c3578a7814aad0ec50
parent628df9dc5ad886b0a9b33c75a7b09710eb859ca1
x86/devicetree: Fix device IRQ settings in DT

IRQ parameters for the SoC devices connected directly to I/O APIC lines
(without PCI IRQ routing) may be specified in the Device Tree.

Called from DT IRQ parser, irq_create_fwspec_mapping() calls
irq_domain_alloc_irqs() with a pointer to irq_fwspec structure as @arg.

But x86-specific DT IRQ allocation code casts @arg to of_phandle_args
structure pointer and crashes trying to read the IRQ parameters. The
function was not converted when the mapping descriptor was changed to
irq_fwspec in the generic irqdomain code.

Fixes: 11e4438ee330 ("irqdomain: Introduce a firmware-specific IRQ specifier structure")
Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Rob Herring <robh+dt@kernel.org>
Link: https://lkml.kernel.org/r/a234dee27ea60ce76141872da0d6bdb378b2a9ee.1520450752.git.ivan.gorinov@intel.com
arch/x86/kernel/devicetree.c