- A single use-after-free fix in the PCI MSI irq domain allocation path

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmHtOA4ACgkQEsHwGGHe
 VUrNTBAArxDYc49UBEB8DmyzdLZi8WbnL9ipD2PfLOWGYfkLEGt4SBt0B7mji+fv
 xSE3QkzFm45DQeAlEjcFHOyUop/BYeNT/4Qdv2bOncrr1eiYGu3gHu5r1yQP4A/r
 zrOnf0TZJebnrQKCPViDB4zrBGWVE/4Nl27dEg34DXdlFsL3s9euYy9lodz2qyU0
 3+rjU3Ok9EZ/vyuKwBkUZ//TfuJOowJEv6dnlVq56DHG3uwwyW6oiAjBbrkMrZWf
 cBiGW5FGNo8nHcSDGuIeKWD+hxcSzTny9R3Jj1mITP5oiCeNvaXcWPg3gwN61sOb
 XoaoqvDs/tXfycijztNBzOsVrt/U0a+24loXxo34/IGgKsaJels2EPqyImIE8YLM
 y/LNR1j/dBCT7jxdRp7FEkSoV1BdohGvWHbSAwRYT8rO+QufRVaERGFMtJn7xrmq
 Uci1UGOF7kuweZgwfn/b34hqxIT/Ie8nvbOIJ/g3d2f4wQ8OGOVydYKU03q2bsjO
 eXSwQp5yDsrqErcV0SGomh7X9Q2talJsEx/xi1kfUdS+FgjdJQQbYNtHmKeSzzKC
 EfByIZtDHcsba+rm3gVws+kgNBw2hgVKUMDx+ABrWbrtlaS3BThiQ4y2bBUqV3tw
 s28mgX2xwFUqQ5F4gZXOkdhQ5pKY6joZ2C1ywIFPYv7nmQY+V74=
 =2tXx
 -----END PGP SIGNATURE-----

Merge tag 'irq_urgent_for_v5.17_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fix from Borislav Petkov:
 "A single use-after-free fix in the PCI MSI irq domain allocation path"

* tag 'irq_urgent_for_v5.17_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  PCI/MSI: Prevent UAF in error path
This commit is contained in:
Linus Torvalds 2022-01-23 17:45:00 +02:00
commit ac5a9bb6b4
2 changed files with 2 additions and 3 deletions

View File

@ -28,6 +28,7 @@ void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
msi_domain_free_irqs_descs_locked(domain, &dev->dev);
else
pci_msi_legacy_teardown_msi_irqs(dev);
msi_free_msi_descs(&dev->dev);
}
/**
@ -171,8 +172,7 @@ struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
pci_msi_domain_update_chip_ops(info);
info->flags |= MSI_FLAG_ACTIVATE_EARLY | MSI_FLAG_DEV_SYSFS |
MSI_FLAG_FREE_MSI_DESCS;
info->flags |= MSI_FLAG_ACTIVATE_EARLY | MSI_FLAG_DEV_SYSFS;
if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
info->flags |= MSI_FLAG_MUST_REACTIVATE;

View File

@ -77,5 +77,4 @@ void pci_msi_legacy_teardown_msi_irqs(struct pci_dev *dev)
{
msi_device_destroy_sysfs(&dev->dev);
arch_teardown_msi_irqs(dev);
msi_free_msi_descs(&dev->dev);
}