--- /dev/null
+From b03214d559471359e2a85ae256686381d0672f29 Mon Sep 17 00:00:00 2001
+From: Michael S. Tsirkin <mst@redhat.com>
+Date: Wed, 23 Jun 2010 22:49:06 -0600
+Subject: virtio-pci: disable msi at startup
+
+From: Michael S. Tsirkin <mst@redhat.com>
+
+commit b03214d559471359e2a85ae256686381d0672f29 upstream.
+
+virtio-pci resets the device at startup by writing to the status
+register, but this does not clear the pci config space,
+specifically msi enable status which affects register
+layout.
+
+This breaks things like kdump when they try to use e.g. virtio-blk.
+
+Fix by forcing msi off at startup. Since pci.c already has
+a routine to do this, we export and use it instead of duplicating code.
+
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+Tested-by: Vivek Goyal <vgoyal@redhat.com>
+Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Cc: linux-pci@vger.kernel.org
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/pci.c | 1 +
+ drivers/virtio/virtio_pci.c | 3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -2046,6 +2046,7 @@ void pci_msi_off(struct pci_dev *dev)
+ pci_write_config_word(dev, pos + PCI_MSIX_FLAGS, control);
+ }
+ }
++EXPORT_SYMBOL_GPL(pci_msi_off);
+
+ #ifndef HAVE_ARCH_PCI_SET_DMA_MASK
+ /*
+--- a/drivers/virtio/virtio_pci.c
++++ b/drivers/virtio/virtio_pci.c
+@@ -635,6 +635,9 @@ static int __devinit virtio_pci_probe(st
+ INIT_LIST_HEAD(&vp_dev->virtqueues);
+ spin_lock_init(&vp_dev->lock);
+
++ /* Disable MSI/MSIX to bring device to a known good state. */
++ pci_msi_off(pci_dev);
++
+ /* enable the device */
+ err = pci_enable_device(pci_dev);
+ if (err)