2008-10-17 09:24:22

by Zhao Lei

[permalink] [raw]
Subject: [PATCH] Fix debugfs_create_dir's error checking method for arm/plat-omap

Hi,

debugfs_create_dir() returns NULL if an error occurs, returns -ENODEV
when debugfs is not enabled in the kernel.

Signed-off-by: Zhao Lei <[email protected]>
---
arch/arm/plat-omap/clock.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index bf6a10c..0767985 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -483,6 +483,8 @@ static int __init clk_debugfs_init(void)
int err;

d = debugfs_create_dir("clock", NULL);
+ if (!d)
+ return -ENOMEM;
if (IS_ERR(d))
return PTR_ERR(d);
clk_debugfs_root = d;
--
1.5.5.3


2008-10-17 10:08:52

by Zhao Lei

[permalink] [raw]
Subject: [PATCH v2] Fix debugfs_create_*'s error checking method for arm/plat-omap

debugfs_create_*() returns NULL if an error occurs, returns -ENODEV
when debugfs is not enabled in the kernel.

Comparing to PATCH v1, because clk_debugfs_init is included in
"#if defined CONFIG_DEBUG_FS", we only need to check NULL return.
Thanks Li Zefan <[email protected]>

debugfs_create_u8() and other function's return value's checking method are
also fixed in this patch.

Signed-off-by: Zhao Lei <[email protected]>
---
arch/arm/plat-omap/clock.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index bf6a10c..be6aab9 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -428,23 +428,23 @@ static int clk_debugfs_register_one(struct clk *c)
if (c->id != 0)
sprintf(p, ":%d", c->id);
d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root);
- if (IS_ERR(d))
- return PTR_ERR(d);
+ if (!d)
+ return -ENOMEM;
c->dent = d;

d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount);
- if (IS_ERR(d)) {
- err = PTR_ERR(d);
+ if (!d) {
+ err = -ENOMEM;
goto err_out;
}
d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate);
- if (IS_ERR(d)) {
- err = PTR_ERR(d);
+ if (!d) {
+ err = -ENOMEM;
goto err_out;
}
d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags);
- if (IS_ERR(d)) {
- err = PTR_ERR(d);
+ if (!d) {
+ err = -ENOMEM;
goto err_out;
}
return 0;
@@ -483,8 +483,8 @@ static int __init clk_debugfs_init(void)
int err;

d = debugfs_create_dir("clock", NULL);
- if (IS_ERR(d))
- return PTR_ERR(d);
+ if (!d)
+ return -ENOMEM;
clk_debugfs_root = d;

list_for_each_entry(c, &clocks, node) {
--
1.5.5.3

2008-10-17 13:37:54

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH v2] Fix debugfs_create_*'s error checking method for arm/plat-omap

* Zhaolei <[email protected]> [081017 03:08]:
> debugfs_create_*() returns NULL if an error occurs, returns -ENODEV
> when debugfs is not enabled in the kernel.
>
> Comparing to PATCH v1, because clk_debugfs_init is included in
> "#if defined CONFIG_DEBUG_FS", we only need to check NULL return.
> Thanks Li Zefan <[email protected]>
>
> debugfs_create_u8() and other function's return value's checking method are
> also fixed in this patch.

Thanks, I've added this into omap-fixes queue for Russell (assuming
Russell did not pick it up yet). I've also pushed it into the
linux-omap tree.

Regards,

Tony


> Signed-off-by: Zhao Lei <[email protected]>
> ---
> arch/arm/plat-omap/clock.c | 20 ++++++++++----------
> 1 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
> index bf6a10c..be6aab9 100644
> --- a/arch/arm/plat-omap/clock.c
> +++ b/arch/arm/plat-omap/clock.c
> @@ -428,23 +428,23 @@ static int clk_debugfs_register_one(struct clk *c)
> if (c->id != 0)
> sprintf(p, ":%d", c->id);
> d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root);
> - if (IS_ERR(d))
> - return PTR_ERR(d);
> + if (!d)
> + return -ENOMEM;
> c->dent = d;
>
> d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount);
> - if (IS_ERR(d)) {
> - err = PTR_ERR(d);
> + if (!d) {
> + err = -ENOMEM;
> goto err_out;
> }
> d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate);
> - if (IS_ERR(d)) {
> - err = PTR_ERR(d);
> + if (!d) {
> + err = -ENOMEM;
> goto err_out;
> }
> d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags);
> - if (IS_ERR(d)) {
> - err = PTR_ERR(d);
> + if (!d) {
> + err = -ENOMEM;
> goto err_out;
> }
> return 0;
> @@ -483,8 +483,8 @@ static int __init clk_debugfs_init(void)
> int err;
>
> d = debugfs_create_dir("clock", NULL);
> - if (IS_ERR(d))
> - return PTR_ERR(d);
> + if (!d)
> + return -ENOMEM;
> clk_debugfs_root = d;
>
> list_for_each_entry(c, &clocks, node) {
> --
> 1.5.5.3
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/