diff mbox

arm: mach-tegra: check wether we have debugfs enabled or not

Message ID 1350501196-5632-1-git-send-email-devendra.aaru@gmail.com
State Rejected, archived
Headers show

Commit Message

Devendra Naga Oct. 17, 2012, 7:13 p.m. UTC
if debugfs is not enabled in kernel it returns -ENODEV, check it
with IS_ERR_OR_NULL along with the null return if it fails to
create a file in debugfs.

Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
---
 arch/arm/mach-tegra/powergate.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Russell King - ARM Linux Oct. 17, 2012, 8:12 p.m. UTC | #1
On Wed, Oct 17, 2012 at 03:13:16PM -0400, Devendra Naga wrote:
> if debugfs is not enabled in kernel it returns -ENODEV, check it
> with IS_ERR_OR_NULL along with the null return if it fails to
> create a file in debugfs.
> 
> Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
> ---
>  arch/arm/mach-tegra/powergate.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
> index de0662d..1809b91d 100644
> --- a/arch/arm/mach-tegra/powergate.c
> +++ b/arch/arm/mach-tegra/powergate.c
> @@ -269,7 +269,7 @@ int __init tegra_powergate_debugfs_init(void)
>  	if (powergate_name) {
>  		d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
>  			&powergate_fops);
> -		if (!d)
> +		if (IS_ERR_OR_NULL(d))
>  			return -ENOMEM;

So, you want to make this function hard-fail if a debugfs error occurs
_or_ debugfs is not configured?  That doesn't seem to be a clever thing
to do.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Devendra Naga Oct. 17, 2012, 8:18 p.m. UTC | #2
On Wed, Oct 17, 2012 at 4:12 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> So, you want to make this function hard-fail if a debugfs error occurs
> _or_ debugfs is not configured?  That doesn't seem to be a clever thing
> to do.


I was seeing some places where the check is only for the pointer null
or valid one that is returned by
the debugfs_create_file, and fixed it up using this macro by failing
out even if we dont have debugfs
enabled in kernel.

I am sure that i really dont' know any part of the ARM stuff, tried to
fix this too, because this function
also checks for the null pointer if debugfs_create_file failed to
create a file in debugfs and fails out if
it can't be able to create that, but it wont check for whether we have
debugfs enabled in kernel.

thanks,
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren Oct. 17, 2012, 9:22 p.m. UTC | #3
On 10/17/2012 02:12 PM, Russell King - ARM Linux wrote:
> On Wed, Oct 17, 2012 at 03:13:16PM -0400, Devendra Naga wrote:
>> if debugfs is not enabled in kernel it returns -ENODEV, check it
>> with IS_ERR_OR_NULL along with the null return if it fails to
>> create a file in debugfs.
>>
>> Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
>> ---
>>  arch/arm/mach-tegra/powergate.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
>> index de0662d..1809b91d 100644
>> --- a/arch/arm/mach-tegra/powergate.c
>> +++ b/arch/arm/mach-tegra/powergate.c
>> @@ -269,7 +269,7 @@ int __init tegra_powergate_debugfs_init(void)
>>  	if (powergate_name) {
>>  		d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
>>  			&powergate_fops);
>> -		if (!d)
>> +		if (IS_ERR_OR_NULL(d))
>>  			return -ENOMEM;
> 
> So, you want to make this function hard-fail if a debugfs error occurs
> _or_ debugfs is not configured?  That doesn't seem to be a clever thing
> to do.

In practice, that quoted chunk of code is inside an #ifdef
CONFIG_DEBUG_FS, so according to the documentation for
debugfs_create_file(), the IS_ERR case of IS_ERR_OR_NULL cannot happen
here. So, the above change is a no-op, so there's not much point
applying it.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Russell King - ARM Linux Oct. 17, 2012, 10:14 p.m. UTC | #4
On Wed, Oct 17, 2012 at 03:22:13PM -0600, Stephen Warren wrote:
> On 10/17/2012 02:12 PM, Russell King - ARM Linux wrote:
> > On Wed, Oct 17, 2012 at 03:13:16PM -0400, Devendra Naga wrote:
> >> if debugfs is not enabled in kernel it returns -ENODEV, check it
> >> with IS_ERR_OR_NULL along with the null return if it fails to
> >> create a file in debugfs.
> >>
> >> Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
> >> ---
> >>  arch/arm/mach-tegra/powergate.c |    2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
> >> index de0662d..1809b91d 100644
> >> --- a/arch/arm/mach-tegra/powergate.c
> >> +++ b/arch/arm/mach-tegra/powergate.c
> >> @@ -269,7 +269,7 @@ int __init tegra_powergate_debugfs_init(void)
> >>  	if (powergate_name) {
> >>  		d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
> >>  			&powergate_fops);
> >> -		if (!d)
> >> +		if (IS_ERR_OR_NULL(d))
> >>  			return -ENOMEM;
> > 
> > So, you want to make this function hard-fail if a debugfs error occurs
> > _or_ debugfs is not configured?  That doesn't seem to be a clever thing
> > to do.
> 
> In practice, that quoted chunk of code is inside an #ifdef
> CONFIG_DEBUG_FS, so according to the documentation for
> debugfs_create_file(), the IS_ERR case of IS_ERR_OR_NULL cannot happen
> here. So, the above change is a no-op, so there's not much point
> applying it.

Ok.  Another reason not to apply it is that should the ifdefs get
removed, it'll start failing when debugfs is disabled with -ENOMEM,
which isn't bright.  A further reason is it's another place that'd
need reviewing for bad usage of the IS_ERR_OR_NULL() problem I've
pointed out this evening.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
index de0662d..1809b91d 100644
--- a/arch/arm/mach-tegra/powergate.c
+++ b/arch/arm/mach-tegra/powergate.c
@@ -269,7 +269,7 @@  int __init tegra_powergate_debugfs_init(void)
 	if (powergate_name) {
 		d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
 			&powergate_fops);
-		if (!d)
+		if (IS_ERR_OR_NULL(d))
 			return -ENOMEM;
 	}