Re: [PATCH v2] PCI: iproc: Use __free(device_node) in iproc_pcie_msi_enable()
From: Manivannan Sadhasivam
Date: Sun Oct 18 2026 - 00:15:50 EST
On 2026-10-18 09:41 +0530, Manivannan Sadhasivam wrote:
> On 2026-09-23 19:07 +0100, Fuad Tabba 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@xxxxxxxxxxx>
> > Link: https://lore.kernel.org/linux-pci/61488ddc-b346-4ba3-b32a-e972a3bd75a4@xxxxxxxxxxx/
> > Reviewed-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxxxx>
> > Signed-off-by: Fuad Tabba <fuad.tabba@xxxxxxxxx>
> > ---
> >
> > Notes:
> > Changes since v1:
> > - Declare msi_node immediately before of_msi_xlate() rather than at the
> > top of the function (Jonathan).
> > - Kept Marek's Reviewed-by, since the generated code is unchanged.
> >
> > 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..bf455f2a9d9a9 100644
> > --- a/drivers/pci/controller/pcie-iproc.c
> > +++ b/drivers/pci/controller/pcie-iproc.c
> > @@ -1338,13 +1338,13 @@ 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;
> > int ret;
> >
> > /*
> > * Either the "msi-parent" or the "msi-map" phandle needs to exist
> > * for us to obtain the MSI node.
> > */
> > + struct device_node *msi_node __free(device_node) = NULL;
>
> As per cleanup.h:
>
> "Given that the "__free(...) = NULL" pattern for variables defined at
> the top of the function poses this potential interdependency problem
> the recommendation is to always define and assign variables in one
> statement and not group variable definitions at the top of the
> function when __free() is used."
>
Hmm. I replied too fast. I think in this case, it is OK since the variable is
passed as a reference in its first usage.
- Mani