[PATCH v5] iommu: Fix an error check in tegra_smmu_debugfs_init()

Minjie Du posted 1 patch 2 years, 6 months ago
drivers/iommu/tegra-smmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v5] iommu: Fix an error check in tegra_smmu_debugfs_init()
Posted by Minjie Du 2 years, 6 months ago
debugfs_create_dir() function returns an error value(PTR_ERR).
We need to evaluate the return value using IS_ERR,
rather than checking for NULL.

Fixes: d1313e7896e9 ("iommu/tegra-smmu: Add debugfs support")
Signed-off-by: Minjie Du <duminjie@vivo.com>
---
V4 -> V5: debugfs needs to have error checking, so use IS_ERR() to error check.
V3 -> V4: fix expression about patch.
V2 -> V3: fix expression about patch.
V1 -> V2: remove the error check.
V1: use IS_ERR() to error check.
---
 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 1cbf063cc..841e14cce 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.39.0
Re: [PATCH v5] iommu: Fix an error check in tegra_smmu_debugfs_init()
Posted by Baolu Lu 2 years, 6 months ago
On 7/14/23 4:13 PM, Minjie Du wrote:
> debugfs_create_dir() function returns an error value(PTR_ERR).
> We need to evaluate the return value using IS_ERR,
> rather than checking for NULL.
> 
> Fixes: d1313e7896e9 ("iommu/tegra-smmu: Add debugfs support")
> Signed-off-by: Minjie Du<duminjie@vivo.com>
> ---
> V4 -> V5: debugfs needs to have error checking, so use IS_ERR() to error check.

Why?

[...]
  * NOTE: it's expected that most callers should _ignore_ the errors 
returned
  * by this function. Other debugfs functions handle the fact that the 
"dentry"
  * passed to them could be an error and they don't crash in that case.
  * Drivers should generally work fine even if debugfs fails to init anyway.
  */
struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
{
         struct dentry *dentry = start_creating(name, parent);
         struct inode *inode;

         if (IS_ERR(dentry))
                 return dentry;

[...]

Best regards,
baolu