Re: [PATCH] PCI: iproc: Use __free(device_node) in iproc_pcie_msi_enable()
flat view
From: Jonathan Cameron <hidden>
Date: 2026-09-23 16:34:53
Also in:
linux-pci, lkml
On Tue, 22 Sep 2026 22:08:39 +0100 Fuad Tabba [off-list ref] wrote:
Declare msi_node with __free(device_node) and drop the out_put_node label and its goto: the scoped cleanup puts the MSI controller node on every return, as the label did. No functional change intended. Suggested-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Link: https://lore.kernel.org/linux-pci/61488ddc-b346-4ba3-b32a-e972a3bd75a4@mailbox.org/ (local) Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev>
Hi Fuad, See the guidance notes in cleanup.h. Linus has stated a couple of times that he really never wants to see = NULL pattern miles from where it is allocated. Best you can do here is shift it down to immediately before of_msi_xlate(). It is fine to declare variables with destructors like this inline (i.e. not at top of function). Admittedly if the scope shown here had gone a few lines further this would look less bad!
quoted hunk ↗ jump to hunk
--- drivers/pci/controller/pcie-iproc.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c index afb3aa38ac6bb..b4f4e6e1d4b41 100644 --- a/drivers/pci/controller/pcie-iproc.c +++ b/drivers/pci/controller/pcie-iproc.c@@ -1338,7 +1338,7 @@ static int iproc_pcie_msi_steer(struct iproc_pcie *pcie, static int iproc_pcie_msi_enable(struct iproc_pcie *pcie) { - struct device_node *msi_node = NULL; + struct device_node *msi_node __free(device_node) = NULL; int ret; /*@@ -1357,18 +1357,14 @@ static int iproc_pcie_msi_enable(struct iproc_pcie *pcie) if (pcie->need_msi_steer) { ret = iproc_pcie_msi_steer(pcie, msi_node); if (ret) - goto out_put_node; + return ret; } /* * If another MSI controller is being used, the call below should fail * but that is okay */ - ret = iproc_msi_init(pcie, msi_node); - -out_put_node: - of_node_put(msi_node); - return ret; + return iproc_msi_init(pcie, msi_node); } static void iproc_pcie_msi_disable(struct iproc_pcie *pcie)base-commit: fd73f4a6659897191fa0d40695fe370925dd3780