diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2010-06-23 22:49:06 -0600 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2010-06-23 22:49:07 +0930 |
commit | b03214d559471359e2a85ae256686381d0672f29 (patch) | |
tree | b2c5d617304bffc8dd4917ecef251ec109eb3b8b /drivers/pci/pci.c | |
parent | 686d363786a53ed28ee875b84ef24e6d5126ef6f (diff) | |
download | kernel_samsung_smdk4412-b03214d559471359e2a85ae256686381d0672f29.tar.gz kernel_samsung_smdk4412-b03214d559471359e2a85ae256686381d0672f29.tar.bz2 kernel_samsung_smdk4412-b03214d559471359e2a85ae256686381d0672f29.zip |
virtio-pci: disable msi at startup
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>
Cc: stable@kernel.org
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 60f30e7f1c8..740fb4ea966 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -2292,6 +2292,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_MAX_SEGMENT_SIZE int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size) |