> @@ -317,7 +317,7 @@ void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) > { > struct pci_dev *dev = msi_desc_to_pci_dev(entry); > > - if (dev->current_state != PCI_D0) { > + if (dev->current_state != PCI_D0 || pci_dev_is_disconnected(dev)) { It also skips any MSI message writes as far as I cann tell from the above. Which seems sensible, but should be mentioned in the changelog. Otherwise looks fine to me: Reviewed-by: Christoph Hellwig <hch@xxxxxx>