Bjorn Helgaas <helgaas@xxxxxxxxxx> writes: > On Thu, Aug 07, 2025 at 10:10:51AM +0200, Nam Cao wrote: >> vmd_msi_alloc() allocates struct vmd_irq and stashes it into >> irq_data->chip_data associated with the VMD's interrupt domain. >> vmd_msi_free() extracts the pointer by calling irq_get_chip_data() and >> frees it. >> >> irq_get_chip_data() returns the chip_data associated with the top interrupt >> domain. This worked in the past, because VMD's interrupt domain was the top >> domain. >> >> But since commit d7d8ab87e3e7 ("PCI: vmd: Switch to >> msi_create_parent_irq_domain()") changed the interrupt domain hierarchy, >> VMD's interrupt domain is not the top domain anymore. irq_get_chip_data() >> now returns the chip_data at the MSI devices' interrupt domains. It is >> therefore broken for vmd_msi_free() to kfree() this chip_data. >> >> Fix this issue, correctly extract the chip_data associated with the VMD's >> interrupt domain. ... > > Applied to pci/for-linus for v6.17, thanks! > > I assume you checked the other msi_create_parent_irq_domain() changes > for similar problems? Not before you reminded me :( But yes, none of the similar PCI patches has the same problem. Nam