mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
ioemu: fix multiple pci-attach/pci-detach by removing the meaningless irq_index
For HVM guest, we can't do pci-attach/pci-detach for >64 times due to the meaningless checking in pci_register_device(). I made a test of 300 times of attach/detach and everything now works well. Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
This commit is contained in:
1 parent
f1a381df9c
commit
a06cb3d8d8
2 files changed
-7
No files matched your search
@@ -45,7 +45,6 @@ struct PCIBus {
|
||||
static void pci_update_mappings(PCIDevice *d);
|
||||
|
||||
target_phys_addr_t pci_mem_base;
|
||||
static int pci_irq_index;
|
||||
static PCIBus *first_bus;
|
||||
|
||||
PCIBus *pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
|
||||
@@ -114,9 +113,6 @@ PCIDevice *pci_register_device(PCIBus *bus, const char *name,
|
||||
{
|
||||
PCIDevice *pci_dev;
|
||||
|
||||
if (pci_irq_index >= PCI_DEVICES_MAX)
|
||||
return NULL;
|
||||
|
||||
if (devfn < 0) {
|
||||
for(devfn = bus->devfn_min ; devfn < 256; devfn += 8) {
|
||||
if ( !bus->devices[devfn] &&
|
||||
@@ -140,7 +136,6 @@ PCIDevice *pci_register_device(PCIBus *bus, const char *name,
|
||||
config_write = pci_default_write_config;
|
||||
pci_dev->config_read = config_read;
|
||||
pci_dev->config_write = config_write;
|
||||
pci_dev->irq_index = pci_irq_index++;
|
||||
bus->devices[devfn] = pci_dev;
|
||||
return pci_dev;
|
||||
}
|
||||
|
||||
@@ -812,8 +812,6 @@ struct PCIDevice {
|
||||
/* do not access the following fields */
|
||||
PCIConfigReadFunc *config_read;
|
||||
PCIConfigWriteFunc *config_write;
|
||||
/* ??? This is a PC-specific hack, and should be removed. */
|
||||
int irq_index;
|
||||
|
||||
/* Current IRQ levels. Used internally by the generic PCI code. */
|
||||
int irq_state[4];
|
||||
|
||||