Re: [PATCH v2] PCI: iproc: Use __free(device_node) in iproc_pcie_msi_enable()
From: Manivannan Sadhasivam
Date: Sun Oct 18 2026 - 00:12:29 EST
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."
- Mani