diff options
Diffstat (limited to 'drivers/pci/probe.c')
| -rw-r--r-- | drivers/pci/probe.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 953f15abc850..3a62d09b8869 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -895,7 +895,6 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)  	/* Temporarily move resources off the list */  	list_splice_init(&bridge->windows, &resources);  	bus->sysdata = bridge->sysdata; -	bus->msi = bridge->msi;  	bus->ops = bridge->ops;  	bus->number = bus->busn_res.start = bridge->busnr;  #ifdef CONFIG_PCI_DOMAINS_GENERIC @@ -926,6 +925,8 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)  	device_enable_async_suspend(bus->bridge);  	pci_set_bus_of_node(bus);  	pci_set_bus_msi_domain(bus); +	if (bridge->msi_domain && !dev_get_msi_domain(&bus->dev)) +		bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI;  	if (!parent)  		set_dev_node(bus->bridge, pcibus_to_node(bus)); @@ -1053,7 +1054,6 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,  		return NULL;  	child->parent = parent; -	child->msi = parent->msi;  	child->sysdata = parent->sysdata;  	child->bus_flags = parent->bus_flags; @@ -2353,6 +2353,7 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)  	pci_set_of_node(dev);  	if (pci_setup_device(dev)) { +		pci_release_of_node(dev);  		pci_bus_put(dev->bus);  		kfree(dev);  		return NULL; | 
