On Thu, Jul 09, 2020 at 11:53:06AM +0200, Thomas Gleixner wrote: > Quite some non OF/ACPI users of irqdomains allocate firmware nodes of type > IRQCHIP_FWNODE_NAMED or IRQCHIP_FWNODE_NAMED_ID and free them right after > creating the irqdomain. The only purpose of these FW nodes is to convey > name information. When this was introduced the core code did not store the > pointer to the node in the irqdomain. A recent change stored the firmware > node pointer in irqdomain for other reasons and missed to notice that the > usage sites which do the alloc_fwnode/create_domain/free_fwnode sequence > are broken by this. Storing a dangling pointer is dangerous itself, but in > case that the domain is destroyed later on this leads to a double free. > > Remove the freeing of the firmware node after creating the irqdomain from > all affected call sites to cure this. > > Fixes: 711419e504eb ("irqdomain: Add the missing assignment of domain->fwnode for named fwnode") > Reported-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> # drivers/pci/