[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-4.1-testing] Revert c/s 23666:b96f8bdcaa15 KEXEC: disconnect all PCI devices from the PCI bus on crash
# HG changeset patch # User Andrew Cooper <andrew.cooper3@xxxxxxxxxx> # Date 1321114442 0 # Node ID 9702967e89dd005a8b3f24eb1d10c46712c2e3ed # Parent 55879870fc8f8bb004325146d0c183a2d756ce35 Revert c/s 23666:b96f8bdcaa15 KEXEC: disconnect all PCI devices from the PCI bus on crash It turns out that this causes all mannor of problems on certain motherboards (so far with no pattern I can discern) Problems include: * Hanging forever checking hlt instruction. * Panics when trying to change switch root device * Drivers hanging when trying to check for interrupts. From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Signed-off-by: Keir Fraser <keir@xxxxxxx> Committed-by: Keir Fraser <keir@xxxxxxx> xen-unstable changeset: 24137:0844b17df7a9 xen-unstable date: Fri Nov 11 18:14:35 2011 +0000 --- diff -r 55879870fc8f -r 9702967e89dd xen/arch/x86/crash.c --- a/xen/arch/x86/crash.c Sat Nov 12 16:11:21 2011 +0000 +++ b/xen/arch/x86/crash.c Sat Nov 12 16:14:02 2011 +0000 @@ -28,7 +28,6 @@ #include <asm/apic.h> #include <asm/io_apic.h> #include <xen/iommu.h> -#include <xen/pci.h> #include <asm/hpet.h> static atomic_t waiting_for_crash_ipi; @@ -83,8 +82,6 @@ msecs--; } - disconnect_pci_devices(); - /* Crash shutdown any IOMMU functionality as the crashdump kernel is not * happy when booting if interrupt/dma remapping is still enabled */ iommu_crash_shutdown(); diff -r 55879870fc8f -r 9702967e89dd xen/drivers/passthrough/pci.c --- a/xen/drivers/passthrough/pci.c Sat Nov 12 16:11:21 2011 +0000 +++ b/xen/drivers/passthrough/pci.c Sat Nov 12 16:14:02 2011 +0000 @@ -499,25 +499,6 @@ return 0; } -/* Disconnect all PCI devices from the PCI buses. From the PCI spec: - * "When a 0 is written to [the COMMAND] register, the device is - * logically disconnected from the PCI bus for all accesses except - * configuration accesses. All devices are required to support - * this base level of functionality." - */ -void disconnect_pci_devices(void) -{ - struct pci_dev *pdev; - - spin_lock(&pcidevs_lock); - - list_for_each_entry ( pdev, &alldevs_list, alldevs_list ) - pci_conf_write16(pdev->bus, PCI_SLOT(pdev->devfn), - PCI_FUNC(pdev->devfn), PCI_COMMAND, 0); - - spin_unlock(&pcidevs_lock); -} - #ifdef SUPPORT_MSI_REMAPPING static void dump_pci_devices(unsigned char ch) { diff -r 55879870fc8f -r 9702967e89dd xen/include/xen/pci.h --- a/xen/include/xen/pci.h Sat Nov 12 16:11:21 2011 +0000 +++ b/xen/include/xen/pci.h Sat Nov 12 16:14:02 2011 +0000 @@ -94,8 +94,6 @@ struct pci_dev *pci_get_pdev(int bus, int devfn); struct pci_dev *pci_get_pdev_by_domain(struct domain *d, int bus, int devfn); -void disconnect_pci_devices(void); - uint8_t pci_conf_read8( unsigned int bus, unsigned int dev, unsigned int func, unsigned int reg); uint16_t pci_conf_read16( _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |