[PATCH 1/3] PCI: mvebu: Simplify with scoped for each OF child loop
Jonathan Cameron
jonathan.cameron at huawei.com
Mon Jan 5 21:35:02 AEDT 2026
On Fri, 2 Jan 2026 13:49:01 +0100
Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com> wrote:
> Use scoped for-each loop when iterating over device nodes to make code a
> bit simpler.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
Hi Krzysztof,
Drive by review. Your changes are functionally equivalent and lgtm.
However, I am curious at whether the lack of reference count for child
when stashed in port->dn (and then used in the for loop) is a potential
issue.
Jonathan
> ---
> drivers/pci/controller/pci-mvebu.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
> index a72aa57591c0..4d3c97b62fe0 100644
> --- a/drivers/pci/controller/pci-mvebu.c
> +++ b/drivers/pci/controller/pci-mvebu.c
> @@ -1452,7 +1452,6 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
> struct mvebu_pcie *pcie;
> struct pci_host_bridge *bridge;
> struct device_node *np = dev->of_node;
> - struct device_node *child;
> int num, i, ret;
>
> bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct mvebu_pcie));
> @@ -1474,16 +1473,14 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
> return -ENOMEM;
>
> i = 0;
> - for_each_available_child_of_node(np, child) {
> + for_each_available_child_of_node_scoped(np, child) {
> struct mvebu_pcie_port *port = &pcie->ports[i];
>
> ret = mvebu_pcie_parse_port(pcie, port, child);
> - if (ret < 0) {
> - of_node_put(child);
> + if (ret < 0)
> return ret;
> - } else if (ret == 0) {
> + else if (ret == 0)
> continue;
> - }
>
> port->dn = child;
> i++;
> @@ -1493,6 +1490,7 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
> for (i = 0; i < pcie->nports; i++) {
> struct mvebu_pcie_port *port = &pcie->ports[i];
> int irq = port->intx_irq;
> + struct device_node *child;
>
> child = port->dn;
> if (!child)
More information about the Linuxppc-dev
mailing list