debugfs_create_*() functions return a struct dentry pointer. In
omap_sr_probe(), the pointer is checked if the debug entry created
happens to be a directory. However, it is ignored in case of leaf
nodes viz. while calling  debugfs_create_file() and
debugfs_create_x32().

Replace the unnecessary void casts with appropriate error check
of the returned struct dentry pointer and provide a warning in
case of error.

Tested on OMAP3630 Zoom3 and OMAP4430 SDP

Reported-by: Nishanth Menon <[email protected]>
Acked-by: Nishanth Menon <[email protected]>
Reviewed-by: Charulatha V <[email protected]>

Signed-off-by: Anand S Sawant <[email protected]>
---
Based on the latest Kevin's PM branch

 arch/arm/mach-omap2/smartreflex.c |   41 +++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/smartreflex.c 
b/arch/arm/mach-omap2/smartreflex.c
index 77ecebf..c57f80f 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -822,7 +822,7 @@ static int __init omap_sr_probe(struct platform_device 
*pdev)
        struct omap_sr *sr_info = kzalloc(sizeof(struct omap_sr), GFP_KERNEL);
        struct omap_sr_data *pdata = pdev->dev.platform_data;
        struct resource *mem, *irq;
-       struct dentry *vdd_dbg_dir, *dbg_dir, *nvalue_dir;
+       struct dentry *vdd_dbg_dir, *dbg_dir, *nvalue_dir, *dbg_entry;
        struct omap_volt_data *volt_data;
        int i, ret = 0;
 
@@ -901,14 +901,37 @@ static int __init omap_sr_probe(struct platform_device 
*pdev)
                return PTR_ERR(dbg_dir);
        }
 
-       (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUGO, dbg_dir,
+       dbg_entry = debugfs_create_file("autocomp", S_IRUGO | S_IWUGO, dbg_dir,
                                (void *)sr_info, &pm_sr_fops);
-       (void) debugfs_create_x32("errweight", S_IRUGO, dbg_dir,
+       if (IS_ERR(dbg_entry)) {
+               dev_warn(&pdev->dev,
+                       "%s: Unable to create debugfs entry for autocomp",
+                       __func__);
+       }
+
+       dbg_entry = debugfs_create_x32("errweight", S_IRUGO, dbg_dir,
                        &sr_info->err_weight);
-       (void) debugfs_create_x32("errmaxlimit", S_IRUGO, dbg_dir,
+       if (IS_ERR(dbg_entry)) {
+               dev_warn(&pdev->dev,
+                       "%s: Unable to create debugfs entry for errweight",
+                       __func__);
+       }
+
+       dbg_entry = debugfs_create_x32("errmaxlimit", S_IRUGO, dbg_dir,
                        &sr_info->err_maxlimit);
-       (void) debugfs_create_x32("errminlimit", S_IRUGO, dbg_dir,
+       if (IS_ERR(dbg_entry)) {
+               dev_warn(&pdev->dev,
+                       "%s: Unable to create debugfs entry for errmaxlimit",
+                       __func__);
+       }
+
+       dbg_entry = debugfs_create_x32("errminlimit", S_IRUGO, dbg_dir,
                        &sr_info->err_minlimit);
+       if (IS_ERR(dbg_entry)) {
+               dev_warn(&pdev->dev,
+                       "%s: Unable to create debugfs entry for errminlimit",
+                       __func__);
+       }
 
        nvalue_dir = debugfs_create_dir("nvalue", dbg_dir);
        if (IS_ERR(nvalue_dir)) {
@@ -940,8 +963,14 @@ static int __init omap_sr_probe(struct platform_device 
*pdev)
                strcpy(name, "volt_");
                sprintf(volt_name, "%d", volt_data[i].volt_nominal);
                strcat(name, volt_name);
-               (void) debugfs_create_x32(name, S_IRUGO | S_IWUGO, nvalue_dir,
+               dbg_entry = debugfs_create_x32(name, S_IRUGO | S_IWUGO,
+                               nvalue_dir,
                                &(sr_info->nvalue_table[i].nvalue));
+               if (IS_ERR(dbg_entry)) {
+                       dev_warn(&pdev->dev,
+                               "%s: Unable to create debugfs entry for %s",
+                               __func__, name);
+               }
        }
 
        return ret;
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to