[PATCH] PCI: Fix logic OF logic in pci_dma_configure()

Suravee Suthikulpanit Suravee.Suthikulpanit at amd.com
Wed Nov 18 16:49:52 PST 2015


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 at arm.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
Cc: Bjorn Helgaas <bhelgaas at google.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit at amd.com>
---
 drivers/pci/probe.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index e735c72..edb1984 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1685,8 +1685,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);
-- 
2.1.0




More information about the linux-arm-kernel mailing list