]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
of/irq: Fix OF node refcount in of_msi_get_domain()
authorLorenzo Pieralisi <lpieralisi@kernel.org>
Tue, 21 Oct 2025 12:41:00 +0000 (14:41 +0200)
committerRob Herring (Arm) <robh@kernel.org>
Wed, 22 Oct 2025 14:04:03 +0000 (09:04 -0500)
In of_msi_get_domain() if the iterator loop stops early because an
irq_domain match is detected, an of_node_put() on the iterator node is
needed to keep the OF node refcount in sync.

Add it.

Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Cc: Rob Herring <robh@kernel.org>
Link: https://patch.msgid.link/20251021124103.198419-3-lpieralisi@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/irq.c

index 321d40ec229bf0a607e5019904a153a60689747d..ee7d5f0842e87d9553ff2fb17679a38c37a8e260 100644 (file)
@@ -774,8 +774,10 @@ struct irq_domain *of_msi_get_domain(struct device *dev,
 
        of_for_each_phandle(&it, err, np, "msi-parent", "#msi-cells", 0) {
                d = irq_find_matching_host(it.node, token);
-               if (d)
+               if (d) {
+                       of_node_put(it.node);
                        return d;
+               }
        }
 
        return NULL;