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
639639 (unsigned long long)r->end,
640640 (unsigned int)r->flags);
641641
642− if (pci_claim_resource(dev, i) == 0)
643− continue;
644−
645− pci_claim_bridge_resource(dev, i);
642+ pci_claim_resource(dev, i);
646643 }
647644 }
648645
drivers/pci/host/pcie-designware.c+1−1
@@ -342,7 +342,7 @@ static const struct irq_domain_ops msi_domain_ops = { · 341 unmodified lines
342342 .map = dw_pcie_msi_map,
343343 };
344344
345−int __init dw_pcie_host_init(struct pcie_port *pp)
345+int dw_pcie_host_init(struct pcie_port *pp)
346346 {
347347 struct device_node *np = pp->dev->of_node;
348348 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
269269 .host_init = spear13xx_pcie_host_init,
270270 };
271271
272−static int __init spear13xx_add_pcie_port(struct pcie_port *pp,
272+static int spear13xx_add_pcie_port(struct pcie_port *pp,
273273 struct platform_device *pdev)
274274 {
275275 struct device *dev = &pdev->dev;
@@ -299,7 +299,7 @@ static int __init spear13xx_add_pcie_port(struct pcie_port *pp, · 23 unmodified lines
299299 return 0;
300300 }
301301
302−static int __init spear13xx_pcie_probe(struct platform_device *pdev)
302+static int spear13xx_pcie_probe(struct platform_device *pdev)
303303 {
304304 struct spear13xx_pcie *spear13xx_pcie;
305305 struct pcie_port *pp;
@@ -370,7 +370,7 @@ static const struct of_device_id spear13xx_pcie_of_match[] = { · 64 unmodified lines
370370 };
371371 MODULE_DEVICE_TABLE(of, spear13xx_pcie_of_match);
372372
373−static struct platform_driver spear13xx_pcie_driver __initdata = {
373+static struct platform_driver spear13xx_pcie_driver = {
374374 .probe = spear13xx_pcie_probe,
375375 .driver = {
376376 .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
286286 }
287287 parent = slot->dev->bus;
288288
289− list_for_each_entry(dev, &parent->devices, bus_list)
289+ list_for_each_entry(dev, &parent->devices, bus_list) {
290290 if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn))
291291 continue;
292292 if (pci_is_bridge(dev))
293293 pci_hp_add_bridge(dev);
294+ }
294295
295296
296297 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
248248 acpi_handle handle, phandle;
249249 struct pci_bus *pbus;
250250
251+ if (acpi_pci_disabled)
252+ return -ENODEV;
253+
251254 handle = NULL;
252255 for (pbus = dev->bus; pbus; pbus = pbus->parent) {
253256 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
132132 static void __print_tlp_header(struct pci_dev *dev,
133133 struct aer_header_log_regs *t)
134134 {
135− unsigned char *tlp = (unsigned char *)&t;
136−
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));
135+ dev_err(&dev->dev, " TLP Header: %08x %08x %08x %08x\n",
136+ t->dw0, t->dw1, t->dw2, t->dw3);
145137 }
146138
147139 static void __aer_print_error(struct pci_dev *dev,