2023-10-25 11:02:14

by Dario Binacchi

[permalink] [raw]
Subject: [PATCH] iommu/tegra-smmu: fix error checking for debugfs_create_dir()

The return value of debugfs_create_dir() should be checked using the
IS_ERR() function.

Signed-off-by: Dario Binacchi <[email protected]>
---

drivers/iommu/tegra-smmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index e445f80d0226..cd1d80c4c673 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -1056,7 +1056,7 @@ DEFINE_SHOW_ATTRIBUTE(tegra_smmu_clients);
static void tegra_smmu_debugfs_init(struct tegra_smmu *smmu)
{
smmu->debugfs = debugfs_create_dir("smmu", NULL);
- if (!smmu->debugfs)
+ if (IS_ERR(smmu->debugfs))
return;

debugfs_create_file("swgroups", S_IRUGO, smmu->debugfs, smmu,
--
2.42.0


2023-10-25 11:26:10

by Baolu Lu

[permalink] [raw]
Subject: Re: [PATCH] iommu/tegra-smmu: fix error checking for debugfs_create_dir()

On 2023/10/25 19:01, Dario Binacchi wrote:
> The return value of debugfs_create_dir() should be checked using the
> IS_ERR() function.
>
> Signed-off-by: Dario Binacchi <[email protected]>
> ---
>
> drivers/iommu/tegra-smmu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
> index e445f80d0226..cd1d80c4c673 100644
> --- a/drivers/iommu/tegra-smmu.c
> +++ b/drivers/iommu/tegra-smmu.c
> @@ -1056,7 +1056,7 @@ DEFINE_SHOW_ATTRIBUTE(tegra_smmu_clients);
> static void tegra_smmu_debugfs_init(struct tegra_smmu *smmu)
> {
> smmu->debugfs = debugfs_create_dir("smmu", NULL);
> - if (!smmu->debugfs)
> + if (IS_ERR(smmu->debugfs))
> return;

This check can be removed, as debugfs_create_file() can handle the case
where @parent is an error pointer.

>
> debugfs_create_file("swgroups", S_IRUGO, smmu->debugfs, smmu,

Best regards,
baolu

2023-10-30 15:31:51

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] iommu/tegra-smmu: fix error checking for debugfs_create_dir()

On Wed, Oct 25, 2023 at 07:25:50PM +0800, Baolu Lu wrote:
> On 2023/10/25 19:01, Dario Binacchi wrote:
> > The return value of debugfs_create_dir() should be checked using the
> > IS_ERR() function.
> >
> > Signed-off-by: Dario Binacchi <[email protected]>
> > ---
> >
> > drivers/iommu/tegra-smmu.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
> > index e445f80d0226..cd1d80c4c673 100644
> > --- a/drivers/iommu/tegra-smmu.c
> > +++ b/drivers/iommu/tegra-smmu.c
> > @@ -1056,7 +1056,7 @@ DEFINE_SHOW_ATTRIBUTE(tegra_smmu_clients);
> > static void tegra_smmu_debugfs_init(struct tegra_smmu *smmu)
> > {
> > smmu->debugfs = debugfs_create_dir("smmu", NULL);
> > - if (!smmu->debugfs)
> > + if (IS_ERR(smmu->debugfs))
> > return;
>
> This check can be removed, as debugfs_create_file() can handle the case
> where @parent is an error pointer.

A patch for this has been in linux-next for a few weeks, see:

commit f7da9c081517daba70f9f9342e09d7a6322ba323
Author: Jinjie Ruan <[email protected]>
Date: Fri Sep 1 15:30:56 2023 +0800

iommu/tegra-smmu: Drop unnecessary error check for for debugfs_create_dir()

The debugfs_create_dir() function returns error pointers.
It never returns NULL.

As Baolu suggested, this patch removes the error checking for
debugfs_create_dir in tegra-smmu.c. This is because the DebugFS kernel API
is developed in a way that the caller can safely ignore the errors that
occur during the creation of DebugFS nodes. The debugfs APIs have
a IS_ERR() judge in start_creating() which can handle it gracefully. So
these checks are unnecessary.

Fixes: d1313e7896e9 ("iommu/tegra-smmu: Add debugfs support")
Signed-off-by: Jinjie Ruan <[email protected]>
Suggested-by: Baolu Lu <[email protected]>
Acked-by: Thierry Reding <[email protected]>
Reviewed-by: Jason Gunthorpe <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Joerg Roedel <[email protected]>

Thierry


Attachments:
(No filename) (2.17 kB)
signature.asc (849.00 B)
Download all attachments

2023-10-31 07:56:16

by Dario Binacchi

[permalink] [raw]
Subject: Re: [PATCH] iommu/tegra-smmu: fix error checking for debugfs_create_dir()

Hello Thierry,

On Mon, Oct 30, 2023 at 4:30 PM Thierry Reding <[email protected]> wrote:
>
> On Wed, Oct 25, 2023 at 07:25:50PM +0800, Baolu Lu wrote:
> > On 2023/10/25 19:01, Dario Binacchi wrote:
> > > The return value of debugfs_create_dir() should be checked using the
> > > IS_ERR() function.
> > >
> > > Signed-off-by: Dario Binacchi <[email protected]>
> > > ---
> > >
> > > drivers/iommu/tegra-smmu.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
> > > index e445f80d0226..cd1d80c4c673 100644
> > > --- a/drivers/iommu/tegra-smmu.c
> > > +++ b/drivers/iommu/tegra-smmu.c
> > > @@ -1056,7 +1056,7 @@ DEFINE_SHOW_ATTRIBUTE(tegra_smmu_clients);
> > > static void tegra_smmu_debugfs_init(struct tegra_smmu *smmu)
> > > {
> > > smmu->debugfs = debugfs_create_dir("smmu", NULL);
> > > - if (!smmu->debugfs)
> > > + if (IS_ERR(smmu->debugfs))
> > > return;
> >
> > This check can be removed, as debugfs_create_file() can handle the case
> > where @parent is an error pointer.
>
> A patch for this has been in linux-next for a few weeks, see:
>
> commit f7da9c081517daba70f9f9342e09d7a6322ba323
> Author: Jinjie Ruan <[email protected]>
> Date: Fri Sep 1 15:30:56 2023 +0800
>
> iommu/tegra-smmu: Drop unnecessary error check for for debugfs_create_dir()
>
> The debugfs_create_dir() function returns error pointers.
> It never returns NULL.
>
> As Baolu suggested, this patch removes the error checking for
> debugfs_create_dir in tegra-smmu.c. This is because the DebugFS kernel API
> is developed in a way that the caller can safely ignore the errors that
> occur during the creation of DebugFS nodes. The debugfs APIs have
> a IS_ERR() judge in start_creating() which can handle it gracefully. So
> these checks are unnecessary.
>
> Fixes: d1313e7896e9 ("iommu/tegra-smmu: Add debugfs support")
> Signed-off-by: Jinjie Ruan <[email protected]>
> Suggested-by: Baolu Lu <[email protected]>
> Acked-by: Thierry Reding <[email protected]>
> Reviewed-by: Jason Gunthorpe <[email protected]>
> Link: https://lore.kernel.org/r/[email protected]
> Signed-off-by: Joerg Roedel <[email protected]>
>

Thanks for the explanation,
regards
Dario

> Thierry



--

Dario Binacchi

Senior Embedded Linux Developer

[email protected]

__________________________________


Amarula Solutions SRL

Via Le Canevare 30, 31100 Treviso, Veneto, IT

T. +39 042 243 5310
[email protected]

http://www.amarulasolutions.com