pci: pci-uclass: Make DT subnode parse optional
authorSuneel Garapati <sgarapati@marvell.com>
Sat, 19 Oct 2019 23:02:48 +0000 (16:02 -0700)
committerStefan Roese <sr@denx.de>
Tue, 25 Aug 2020 03:41:09 +0000 (05:41 +0200)
Parse subnode DT properties only if parent node is valid.
Otherwise, assert is triggered on ofnode_valid in ofnode_first_subnode
from dev_for_each_subnode.

Signed-off-by: Suneel Garapati <sgarapati@marvell.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
drivers/pci/pci-uclass.c

index fde5b83..cf1bbcc 100644 (file)
@@ -696,7 +696,8 @@ static int pci_find_and_bind_driver(struct udevice *parent,
              find_id->vendor, find_id->device);
 
        /* Determine optional OF node */
-       pci_dev_find_ofnode(parent, bdf, &node);
+       if (ofnode_valid(dev_ofnode(parent)))
+               pci_dev_find_ofnode(parent, bdf, &node);
 
        if (ofnode_valid(node) && !ofnode_is_available(node)) {
                debug("%s: Ignoring disabled device\n", __func__);