History

Merge tag 'pci-v4.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI fixes from Bjorn Helgaas: "Here are some fixes for v4.0. I apologize for how late they are. We were hoping for some better fixes, but couldn't get them polished in time. These fix: - a Xen domU oops with PCI passthrough devices - a sparc T5 boot failure - a STM SPEAr13xx crash (use after initdata freed) - a cpcihp hotplug driver thinko - an AER thinko that printed stack junk Details: Enumeration - Don't look for ACPI hotplug parameters if ACPI is disabled (Bjorn Helgaas) Resource management - Revert "sparc/PCI: Clip bridge windows to fit in upstream windows" (Bjorn Helgaas) AER - Avoid info leak in __print_tlp_header() (Rasmus Villemoes) PCI device hotplug - Add missing curly braces in cpci_configure_slot() (Dan Carpenter) ST Microelectronics SPEAr13xx host bridge driver - Drop __initdata from spear13xx_pcie_driver (Matwey V. Kornilov) * tag 'pci-v4.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: Revert "sparc/PCI: Clip bridge windows to fit in upstream windows" PCI: Don't look for ACPI hotplug parameters if ACPI is disabled PCI: cpcihp: Add missing curly braces in cpci_configure_slot() PCI/AER: Avoid info leak in __print_tlp_header() PCI: spear: Drop __initdata from spear13xx_pcie_driver

Linus Torvalds committed 11 years ago

Commit 3cfb2f72 parents 20624d1 d10b7306 files · +12 −19Browse files

Unified · Split

6 files
  1. arch/sparc/kernel/pci.c +1 −4
  2. drivers/pci/host/pcie-designware.c +1 −1
  3. drivers/pci/host/pcie-spear13xx.c +3 −3
  4. drivers/pci/hotplug/cpci_hotplug_pci.c +2 −1
  5. drivers/pci/pci-acpi.c +3 −0
  6. drivers/pci/pcie/aer/aerdrv_errprint.c +2 −10
arch/sparc/kernel/pci.c+1−4
@@ -639,10 +639,7 @@ static void pci_claim_bus_resources(struct pci_bus *bus) · 638 unmodified lines
639 (unsigned long long)r->end,639 (unsigned long long)r->end,
640 (unsigned int)r->flags);640 (unsigned int)r->flags);
641 641
642 if (pci_claim_resource(dev, i) == 0)642 pci_claim_resource(dev, i);
643 continue;
644
645 pci_claim_bridge_resource(dev, i);
646 }643 }
647 }644 }
648 645
drivers/pci/host/pcie-designware.c+1−1
@@ -342,7 +342,7 @@ static const struct irq_domain_ops msi_domain_ops = { · 341 unmodified lines
342 .map = dw_pcie_msi_map,342 .map = dw_pcie_msi_map,
343};343};
344 344
345int __init dw_pcie_host_init(struct pcie_port *pp)345int dw_pcie_host_init(struct pcie_port *pp)
346{346{
347 struct device_node *np = pp->dev->of_node;347 struct device_node *np = pp->dev->of_node;
348 struct platform_device *pdev = to_platform_device(pp->dev);348 struct platform_device *pdev = to_platform_device(pp->dev);
drivers/pci/host/pcie-spear13xx.c+3−3
@@ -269,7 +269,7 @@ static struct pcie_host_ops spear13xx_pcie_host_ops = { · 268 unmodified lines
269 .host_init = spear13xx_pcie_host_init,269 .host_init = spear13xx_pcie_host_init,
270};270};
271 271
272static int __init spear13xx_add_pcie_port(struct pcie_port *pp,272static int spear13xx_add_pcie_port(struct pcie_port *pp,
273 struct platform_device *pdev)273 struct platform_device *pdev)
274{274{
275 struct device *dev = &pdev->dev;275 struct device *dev = &pdev->dev;
@@ -299,7 +299,7 @@ static int __init spear13xx_add_pcie_port(struct pcie_port *pp, · 23 unmodified lines
299 return 0;299 return 0;
300}300}
301 301
302static int __init spear13xx_pcie_probe(struct platform_device *pdev)302static int spear13xx_pcie_probe(struct platform_device *pdev)
303{303{
304 struct spear13xx_pcie *spear13xx_pcie;304 struct spear13xx_pcie *spear13xx_pcie;
305 struct pcie_port *pp;305 struct pcie_port *pp;
@@ -370,7 +370,7 @@ static const struct of_device_id spear13xx_pcie_of_match[] = { · 64 unmodified lines
370};370};
371MODULE_DEVICE_TABLE(of, spear13xx_pcie_of_match);371MODULE_DEVICE_TABLE(of, spear13xx_pcie_of_match);
372 372
373static struct platform_driver spear13xx_pcie_driver __initdata = {373static struct platform_driver spear13xx_pcie_driver = {
374 .probe = spear13xx_pcie_probe,374 .probe = spear13xx_pcie_probe,
375 .driver = {375 .driver = {
376 .name = "spear-pcie",376 .name = "spear-pcie",
drivers/pci/hotplug/cpci_hotplug_pci.c+2−1
@@ -286,11 +286,12 @@ int cpci_configure_slot(struct slot *slot) · 285 unmodified lines
286 }286 }
287 parent = slot->dev->bus;287 parent = slot->dev->bus;
288 288
289 list_for_each_entry(dev, &parent->devices, bus_list)289 list_for_each_entry(dev, &parent->devices, bus_list) {
290 if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn))290 if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn))
291 continue;291 continue;
292 if (pci_is_bridge(dev))292 if (pci_is_bridge(dev))
293 pci_hp_add_bridge(dev);293 pci_hp_add_bridge(dev);
294 }
294 295
295 296
296 pci_assign_unassigned_bridge_resources(parent->self);297 pci_assign_unassigned_bridge_resources(parent->self);
drivers/pci/pci-acpi.c+3−0
@@ -248,6 +248,9 @@ int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp) · 247 unmodified lines
248 acpi_handle handle, phandle;248 acpi_handle handle, phandle;
249 struct pci_bus *pbus;249 struct pci_bus *pbus;
250 250
251 if (acpi_pci_disabled)
252 return -ENODEV;
253
251 handle = NULL;254 handle = NULL;
252 for (pbus = dev->bus; pbus; pbus = pbus->parent) {255 for (pbus = dev->bus; pbus; pbus = pbus->parent) {
253 handle = acpi_pci_get_bridge_handle(pbus);256 handle = acpi_pci_get_bridge_handle(pbus);
drivers/pci/pcie/aer/aerdrv_errprint.c+2−10
@@ -132,16 +132,8 @@ static const char *aer_agent_string[] = { · 131 unmodified lines
132static void __print_tlp_header(struct pci_dev *dev,132static void __print_tlp_header(struct pci_dev *dev,
133 struct aer_header_log_regs *t)133 struct aer_header_log_regs *t)
134{134{
135 unsigned char *tlp = (unsigned char *)&t;135 dev_err(&dev->dev, " TLP Header: %08x %08x %08x %08x\n",
136 136 t->dw0, t->dw1, t->dw2, t->dw3);
137 dev_err(&dev->dev, " TLP Header:"
138 " %02x%02x%02x%02x %02x%02x%02x%02x"
139 " %02x%02x%02x%02x %02x%02x%02x%02x\n",
140 *(tlp + 3), *(tlp + 2), *(tlp + 1), *tlp,
141 *(tlp + 7), *(tlp + 6), *(tlp + 5), *(tlp + 4),
142 *(tlp + 11), *(tlp + 10), *(tlp + 9),
143 *(tlp + 8), *(tlp + 15), *(tlp + 14),
144 *(tlp + 13), *(tlp + 12));
145}137}
146 138
147static void __aer_print_error(struct pci_dev *dev,139static void __aer_print_error(struct pci_dev *dev,