From 10b9b5d6a851edbd9874a98f52a0abc621cb4057 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Wed, 3 Mar 2010 13:38:43 -0500 Subject: [PATCH] --- yaml --- r: 255274 b: refs/heads/master c: a2be65fd363831502afdf0babdf48149b3959cde h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/xen/xen-pciback/pciback_ops.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9bfaa3f8c3a9..567a0c27f5d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd5b221b348adf63d413de9adad030e4f13664b7 +refs/heads/master: a2be65fd363831502afdf0babdf48149b3959cde diff --git a/trunk/drivers/xen/xen-pciback/pciback_ops.c b/trunk/drivers/xen/xen-pciback/pciback_ops.c index 2b9a93e1fdee..011db675e437 100644 --- a/trunk/drivers/xen/xen-pciback/pciback_ops.c +++ b/trunk/drivers/xen/xen-pciback/pciback_ops.c @@ -23,6 +23,14 @@ void pciback_reset_device(struct pci_dev *dev) /* Disable devices (but not bridges) */ if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) { +#ifdef CONFIG_PCI_MSI + /* The guest could have been abruptly killed without + * disabling MSI/MSI-X interrupts.*/ + if (dev->msix_enabled) + pci_disable_msix(dev); + if (dev->msi_enabled) + pci_disable_msi(dev); +#endif pci_disable_device(dev); pci_write_config_word(dev, PCI_COMMAND, 0);