* [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() @ 2016-10-17 14:54 Wei Yongjun 2016-11-11 21:38 ` Bjorn Helgaas 0 siblings, 1 reply; 5+ messages in thread From: Wei Yongjun @ 2016-10-17 14:54 UTC (permalink / raw) To: Kishon Vijay Abraham I, Bjorn Helgaas; +Cc: Wei Yongjun, linux-omap, linux-pci From: Wei Yongjun <weiyongjun1@huawei.com> This node pointer is returned by of_get_next_child() with refcount incremented in this function. of_node_put() on it before exitting this function on error. This is detected by Coccinelle semantic patch. Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> --- drivers/pci/host/pci-dra7xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c index 9595fad..79297e9 100644 --- a/drivers/pci/host/pci-dra7xx.c +++ b/drivers/pci/host/pci-dra7xx.c @@ -177,6 +177,7 @@ static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) &intx_domain_ops, pp); if (!pp->irq_domain) { dev_err(dev, "Failed to get a INTx IRQ domain\n"); + of_node_put(pcie_intc_node); return -ENODEV; } ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() 2016-10-17 14:54 [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() Wei Yongjun @ 2016-11-11 21:38 ` Bjorn Helgaas 2016-11-12 7:09 ` Kishon Vijay Abraham I 0 siblings, 1 reply; 5+ messages in thread From: Bjorn Helgaas @ 2016-11-11 21:38 UTC (permalink / raw) To: Wei Yongjun Cc: Kishon Vijay Abraham I, Bjorn Helgaas, Wei Yongjun, linux-omap, linux-pci On Mon, Oct 17, 2016 at 02:54:37PM +0000, Wei Yongjun wrote: > From: Wei Yongjun <weiyongjun1@huawei.com> > > This node pointer is returned by of_get_next_child() with refcount > incremented in this function. of_node_put() on it before exitting > this function on error. > > This is detected by Coccinelle semantic patch. > > Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Kishon, this looks correct to me, so I applied it to pci/host-dra7xx for v4.10. Let me know if you have any issue with it. > --- > drivers/pci/host/pci-dra7xx.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c > index 9595fad..79297e9 100644 > --- a/drivers/pci/host/pci-dra7xx.c > +++ b/drivers/pci/host/pci-dra7xx.c > @@ -177,6 +177,7 @@ static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) > &intx_domain_ops, pp); > if (!pp->irq_domain) { > dev_err(dev, "Failed to get a INTx IRQ domain\n"); > + of_node_put(pcie_intc_node); > return -ENODEV; > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() 2016-11-11 21:38 ` Bjorn Helgaas @ 2016-11-12 7:09 ` Kishon Vijay Abraham I 2016-11-14 21:19 ` Bjorn Helgaas 0 siblings, 1 reply; 5+ messages in thread From: Kishon Vijay Abraham I @ 2016-11-12 7:09 UTC (permalink / raw) To: Bjorn Helgaas, Wei Yongjun Cc: Bjorn Helgaas, Wei Yongjun, linux-omap, linux-pci Hi, On Saturday 12 November 2016 03:08 AM, Bjorn Helgaas wrote: > On Mon, Oct 17, 2016 at 02:54:37PM +0000, Wei Yongjun wrote: >> From: Wei Yongjun <weiyongjun1@huawei.com> >> >> This node pointer is returned by of_get_next_child() with refcount >> incremented in this function. of_node_put() on it before exitting >> this function on error. >> >> This is detected by Coccinelle semantic patch. >> >> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> > > Kishon, this looks correct to me, so I applied it to pci/host-dra7xx for > v4.10. Let me know if you have any issue with it. > >> --- >> drivers/pci/host/pci-dra7xx.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c >> index 9595fad..79297e9 100644 >> --- a/drivers/pci/host/pci-dra7xx.c >> +++ b/drivers/pci/host/pci-dra7xx.c >> @@ -177,6 +177,7 @@ static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) >> &intx_domain_ops, pp); >> if (!pp->irq_domain) { >> dev_err(dev, "Failed to get a INTx IRQ domain\n"); >> + of_node_put(pcie_intc_node); I think of_node_put should be used for both the error case and non-error case. Thanks Kishon ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() 2016-11-12 7:09 ` Kishon Vijay Abraham I @ 2016-11-14 21:19 ` Bjorn Helgaas 2016-11-14 21:37 ` Heiko Stuebner 0 siblings, 1 reply; 5+ messages in thread From: Bjorn Helgaas @ 2016-11-14 21:19 UTC (permalink / raw) To: Kishon Vijay Abraham I Cc: Wei Yongjun, Bjorn Helgaas, Wei Yongjun, linux-omap, linux-pci, Shawn Lin, Heiko Stuebner, michal.simek, soren.brinkmann, bharat.kumar.gogada, robh, Frank Rowand, devicetree [+cc Shawn, Heiko, Michal, Soren, Bharat, Rob H, Frank, devicetree@vger] On Sat, Nov 12, 2016 at 12:39:01PM +0530, Kishon Vijay Abraham I wrote: > Hi, > > On Saturday 12 November 2016 03:08 AM, Bjorn Helgaas wrote: > > On Mon, Oct 17, 2016 at 02:54:37PM +0000, Wei Yongjun wrote: > >> From: Wei Yongjun <weiyongjun1@huawei.com> > >> > >> This node pointer is returned by of_get_next_child() with refcount > >> incremented in this function. of_node_put() on it before exitting > >> this function on error. > >> > >> This is detected by Coccinelle semantic patch. > >> > >> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> > > > > Kishon, this looks correct to me, so I applied it to pci/host-dra7xx for > > v4.10. Let me know if you have any issue with it. > > > >> --- > >> drivers/pci/host/pci-dra7xx.c | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c > >> index 9595fad..79297e9 100644 > >> --- a/drivers/pci/host/pci-dra7xx.c > >> +++ b/drivers/pci/host/pci-dra7xx.c > >> @@ -177,6 +177,7 @@ static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) > >> &intx_domain_ops, pp); > >> if (!pp->irq_domain) { > >> dev_err(dev, "Failed to get a INTx IRQ domain\n"); > >> + of_node_put(pcie_intc_node); > > I think of_node_put should be used for both the error case and non-error case. Hmm, OK. I don't know what the rules are. Certainly if we made these drivers modular, I don't think we'd want to leak these references every time we unload/reload the module. Should we do the put immediately here, or in the module remove path, or ...? Adding other driver and DT folks for comment. I dropped these patches for now (dra7xx, rockchip, xilinx-nwl, xilinx). ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() 2016-11-14 21:19 ` Bjorn Helgaas @ 2016-11-14 21:37 ` Heiko Stuebner 0 siblings, 0 replies; 5+ messages in thread From: Heiko Stuebner @ 2016-11-14 21:37 UTC (permalink / raw) To: Bjorn Helgaas Cc: Kishon Vijay Abraham I, Wei Yongjun, Bjorn Helgaas, Wei Yongjun, linux-omap, linux-pci, Shawn Lin, michal.simek, soren.brinkmann, bharat.kumar.gogada, robh, Frank Rowand, devicetree Am Montag, 14. November 2016, 15:19:28 CET schrieb Bjorn Helgaas: > [+cc Shawn, Heiko, Michal, Soren, Bharat, Rob H, Frank, devicetree@vger] > > On Sat, Nov 12, 2016 at 12:39:01PM +0530, Kishon Vijay Abraham I wrote: > > Hi, > > > > On Saturday 12 November 2016 03:08 AM, Bjorn Helgaas wrote: > > > On Mon, Oct 17, 2016 at 02:54:37PM +0000, Wei Yongjun wrote: > > >> From: Wei Yongjun <weiyongjun1@huawei.com> > > >> > > >> This node pointer is returned by of_get_next_child() with refcount > > >> incremented in this function. of_node_put() on it before exitting > > >> this function on error. > > >> > > >> This is detected by Coccinelle semantic patch. > > >> > > >> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> > > > > > > Kishon, this looks correct to me, so I applied it to pci/host-dra7xx for > > > v4.10. Let me know if you have any issue with it. > > > > > >> --- > > >> > > >> drivers/pci/host/pci-dra7xx.c | 1 + > > >> 1 file changed, 1 insertion(+) > > >> > > >> diff --git a/drivers/pci/host/pci-dra7xx.c > > >> b/drivers/pci/host/pci-dra7xx.c > > >> index 9595fad..79297e9 100644 > > >> --- a/drivers/pci/host/pci-dra7xx.c > > >> +++ b/drivers/pci/host/pci-dra7xx.c > > >> @@ -177,6 +177,7 @@ static int dra7xx_pcie_init_irq_domain(struct > > >> pcie_port *pp)> >> > > >> &intx_domain_ops, pp); > > >> > > >> if (!pp->irq_domain) { > > >> > > >> dev_err(dev, "Failed to get a INTx IRQ domain\n"); > > >> > > >> + of_node_put(pcie_intc_node); > > > > I think of_node_put should be used for both the error case and non-error > > case. > Hmm, OK. I don't know what the rules are. Certainly if we made these > drivers modular, I don't think we'd want to leak these references > every time we unload/reload the module. Should we do the put > immediately here, or in the module remove path, or ...? > > Adding other driver and DT folks for comment. I think the function above (dra7xx_pcie_init_irq_domain) can do the of_node_put at its end in all cases as suggested by Kishon. of_get_next_child() will increment the refcount irq_domain_add_linear() __irq_domain_add() also increments the refcount irq_domain_remove() will decrement the refcount So it should be safe to decrement the refcount in dra7xx_pcie_init_irq_domain() in all cases as the irq-domain internals will always keep it above 1 as long as the node is used. Heiko ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-11-14 21:37 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-10-17 14:54 [PATCH -next] PCI: dra7xx: Add missing of_node_put() in dra7xx_pcie_init_irq_domain() Wei Yongjun 2016-11-11 21:38 ` Bjorn Helgaas 2016-11-12 7:09 ` Kishon Vijay Abraham I 2016-11-14 21:19 ` Bjorn Helgaas 2016-11-14 21:37 ` Heiko Stuebner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).