[PATCH] iommu: Use of_property_present()

Rob Herring (Arm) posted 1 patch 1 year, 6 months ago
drivers/iommu/fsl_pamu_domain.c | 4 +---
drivers/iommu/of_iommu.c        | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
[PATCH] iommu: Use of_property_present()
Posted by Rob Herring (Arm) 1 year, 6 months ago
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.

Signed-off-by: Rob Herring (Arm) <robh@kernel.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",
-- 
2.43.0
Re: [PATCH] iommu: Use of_property_present()
Posted by Joerg Roedel 1 year, 5 months ago
On Wed, Jul 31, 2024 at 01:12:44PM -0600, 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.
> 
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
>  drivers/iommu/fsl_pamu_domain.c | 4 +---
>  drivers/iommu/of_iommu.c        | 2 +-
>  2 files changed, 2 insertions(+), 4 deletions(-)

Applied, thanks.
Re: [PATCH] iommu: Use of_property_present()
Posted by Rob Herring 1 year, 5 months ago
On Wed, Jul 31, 2024 at 2:13 PM Rob Herring (Arm) <robh@kernel.org> 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.
>
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
>  drivers/iommu/fsl_pamu_domain.c | 4 +---
>  drivers/iommu/of_iommu.c        | 2 +-
>  2 files changed, 2 insertions(+), 4 deletions(-)

Ping!

>
> 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",
> --
> 2.43.0
>
Re: [PATCH] iommu: Use of_property_present()
Posted by Robin Murphy 1 year, 6 months ago
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@arm.com>

> Signed-off-by: Rob Herring (Arm) <robh@kernel.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",