[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c9e7107e-f1fd-4a22-be6d-45eef392f76b@arm.com>
Date: Thu, 1 Aug 2024 10:58:52 +0100
From: Robin Murphy <robin.murphy@....com>
To: "Rob Herring (Arm)" <robh@...nel.org>, Joerg Roedel <joro@...tes.org>,
Will Deacon <will@...nel.org>
Cc: iommu@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] iommu: Use of_property_present()
On 2024-07-31 8:12 pm, Rob Herring (Arm) wrote:
> Use of_property_present() to test for property presence rather than
> of_(find|get)_property(). This is part of a larger effort to remove
> callers of of_find_property() and similar functions. of_find_property()
> leaks the DT struct property and data pointers which is a problem for
> dynamically allocated nodes which may be freed.
Reviewed-by: Robin Murphy <robin.murphy@....com>
> Signed-off-by: Rob Herring (Arm) <robh@...nel.org>
> ---
> drivers/iommu/fsl_pamu_domain.c | 4 +---
> drivers/iommu/of_iommu.c | 2 +-
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c
> index e9d2bff4659b..30be786bff11 100644
> --- a/drivers/iommu/fsl_pamu_domain.c
> +++ b/drivers/iommu/fsl_pamu_domain.c
> @@ -416,14 +416,12 @@ static struct iommu_group *fsl_pamu_device_group(struct device *dev)
>
> static struct iommu_device *fsl_pamu_probe_device(struct device *dev)
> {
> - int len;
> -
> /*
> * uboot must fill the fsl,liodn for platform devices to be supported by
> * the iommu.
> */
> if (!dev_is_pci(dev) &&
> - !of_get_property(dev->of_node, "fsl,liodn", &len))
> + !of_property_present(dev->of_node, "fsl,liodn"))
> return ERR_PTR(-ENODEV);
>
> return &pamu_iommu;
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 78d61da75257..e7a6a1611d19 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -214,7 +214,7 @@ void of_iommu_get_resv_regions(struct device *dev, struct list_head *list)
> * that represent reservations in the IOVA space, which are regions that should
> * not be mapped.
> */
> - if (of_find_property(it.node, "reg", NULL)) {
> + if (of_property_present(it.node, "reg")) {
> err = of_address_to_resource(it.node, 0, &phys);
> if (err < 0) {
> dev_err(dev, "failed to parse memory region %pOF: %d\n",
Powered by blists - more mailing lists