PCI: Fix OF logic in pci_dma_configure()
authorSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Thu, 19 Nov 2015 00:49:52 +0000 (16:49 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 20 Nov 2015 00:20:36 +0000 (01:20 +0100)
This patch fixes a bug introduced by previous commit,
which incorrectly checkes the of_node of the end-point device.
Instead, it should check the of_node of the host bridge.

Fixes: 50230713b639 ("PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()")
Reported-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pci/probe.c

index 064078e11017870eece0a58f5beca764f8a70281..dc8fbe5c09d3fb614ab33fd293fb92ba06332f73 100644 (file)
@@ -1646,8 +1646,8 @@ static void pci_dma_configure(struct pci_dev *dev)
 {
        struct device *bridge = pci_get_host_bridge_device(dev);
 
-       if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
-               if (bridge->parent)
+       if (IS_ENABLED(CONFIG_OF) &&
+               bridge->parent && bridge->parent->of_node) {
                        of_dma_configure(&dev->dev, bridge->parent->of_node);
        } else if (has_acpi_companion(bridge)) {
                struct acpi_device *adev = to_acpi_device_node(bridge->fwnode);