diff mbox series

powerpc: fix debugfs_create_dir error checking

Message ID CY5PR12MB64553EE96EBB3927311DB598C6459@CY5PR12MB6455.namprd12.prod.outlook.com (mailing list archive)
State Accepted
Commit 429356fac0440b962aaa6d3688709813a21dd122
Headers show
Series powerpc: fix debugfs_create_dir error checking | expand

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_ppctests success Successfully ran 8 jobs.
snowpatch_ozlabs/github-powerpc_selftests success Successfully ran 8 jobs.
snowpatch_ozlabs/github-powerpc_sparse success Successfully ran 4 jobs.
snowpatch_ozlabs/github-powerpc_kernel_qemu success Successfully ran 24 jobs.
snowpatch_ozlabs/github-powerpc_clang success Successfully ran 6 jobs.

Commit Message

Immad Mir May 28, 2023, 7:46 a.m. UTC
From: Immad Mir <mirimmad17@gmail.com>

The debugfs_create_dir returns ERR_PTR incase of an error and the
correct way of checking it by using the IS_ERR inline function, and
not the simple null comparision. This patch fixes this.

Suggested-By: Ivan Orlov <ivan.orlov0322@gmail.com>
Signed-off-by: Immad Mir <mirimmad17@gmail.com>
---
 arch/powerpc/platforms/powernv/opal-xscom.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--
2.40.0

Comments

Greg KH May 28, 2023, 7:57 a.m. UTC | #1
On Sun, May 28, 2023 at 01:16:44PM +0530, mirimmad@outlook.com wrote:
> From: Immad Mir <mirimmad17@gmail.com>
> 
> The debugfs_create_dir returns ERR_PTR incase of an error and the
> correct way of checking it by using the IS_ERR inline function, and
> not the simple null comparision. This patch fixes this.
> 
> Suggested-By: Ivan Orlov <ivan.orlov0322@gmail.com>
> Signed-off-by: Immad Mir <mirimmad17@gmail.com>
> ---
>  arch/powerpc/platforms/powernv/opal-xscom.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c b/arch/powerpc/platforms/powernv/opal-xscom.c
> index 6b4eed2ef..262cd6fac 100644
> --- a/arch/powerpc/platforms/powernv/opal-xscom.c
> +++ b/arch/powerpc/platforms/powernv/opal-xscom.c
> @@ -168,7 +168,7 @@ static int scom_debug_init_one(struct dentry *root, struct device_node *dn,
>  	ent->path.size = strlen((char *)ent->path.data);
> 
>  	dir = debugfs_create_dir(ent->name, root);
> -	if (!dir) {
> +	if (IS_ERR(dir)) {
>  		kfree(ent->path.data);
>  		kfree(ent);
>  		return -1;

Why is this driver caring if debugfs is working or not at all?  It
should just ignore the error and keep moving forward.

And -1 is not a valid error number :(

Have you hit this error on this driver?

thanks,

greg k-h
Immad Mir May 28, 2023, 8:06 a.m. UTC | #2
> Why is this driver caring if debugfs is working or not at all?  It
> should just ignore the error and keep moving forward.

I do not know. But, if the authors of the driver have decided to check for
the error, maybe use the more appropriate way?

Thanks.
Immad.

On Sun, May 28, 2023 at 1:27 PM Greg KH <gregkh@linuxfoundation.org> wrote:

> On Sun, May 28, 2023 at 01:16:44PM +0530, mirimmad@outlook.com wrote:
> > From: Immad Mir <mirimmad17@gmail.com>
> >
> > The debugfs_create_dir returns ERR_PTR incase of an error and the
> > correct way of checking it by using the IS_ERR inline function, and
> > not the simple null comparision. This patch fixes this.
> >
> > Suggested-By: Ivan Orlov <ivan.orlov0322@gmail.com>
> > Signed-off-by: Immad Mir <mirimmad17@gmail.com>
> > ---
> >  arch/powerpc/platforms/powernv/opal-xscom.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c
> b/arch/powerpc/platforms/powernv/opal-xscom.c
> > index 6b4eed2ef..262cd6fac 100644
> > --- a/arch/powerpc/platforms/powernv/opal-xscom.c
> > +++ b/arch/powerpc/platforms/powernv/opal-xscom.c
> > @@ -168,7 +168,7 @@ static int scom_debug_init_one(struct dentry *root,
> struct device_node *dn,
> >       ent->path.size = strlen((char *)ent->path.data);
> >
> >       dir = debugfs_create_dir(ent->name, root);
> > -     if (!dir) {
> > +     if (IS_ERR(dir)) {
> >               kfree(ent->path.data);
> >               kfree(ent);
> >               return -1;
>
> Why is this driver caring if debugfs is working or not at all?  It
> should just ignore the error and keep moving forward.
>
> And -1 is not a valid error number :(
>
> Have you hit this error on this driver?
>
> thanks,
>
> greg k-h
>
Michael Ellerman May 30, 2023, 10:47 a.m. UTC | #3
Greg KH <gregkh@linuxfoundation.org> writes:
> On Sun, May 28, 2023 at 01:16:44PM +0530, mirimmad@outlook.com wrote:
>> From: Immad Mir <mirimmad17@gmail.com>
>> 
>> The debugfs_create_dir returns ERR_PTR incase of an error and the
>> correct way of checking it by using the IS_ERR inline function, and
>> not the simple null comparision. This patch fixes this.
>> 
>> Suggested-By: Ivan Orlov <ivan.orlov0322@gmail.com>
>> Signed-off-by: Immad Mir <mirimmad17@gmail.com>
>> ---
>>  arch/powerpc/platforms/powernv/opal-xscom.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c b/arch/powerpc/platforms/powernv/opal-xscom.c
>> index 6b4eed2ef..262cd6fac 100644
>> --- a/arch/powerpc/platforms/powernv/opal-xscom.c
>> +++ b/arch/powerpc/platforms/powernv/opal-xscom.c
>> @@ -168,7 +168,7 @@ static int scom_debug_init_one(struct dentry *root, struct device_node *dn,
>>  	ent->path.size = strlen((char *)ent->path.data);
>> 
>>  	dir = debugfs_create_dir(ent->name, root);
>> -	if (!dir) {
>> +	if (IS_ERR(dir)) {
>>  		kfree(ent->path.data);
>>  		kfree(ent);
>>  		return -1;
>
> Why is this driver caring if debugfs is working or not at all?  It
> should just ignore the error and keep moving forward.

It's creating directories and then creating files in those directories.
So I think it makes sense that it checks that the directory was created
successfully. It doesn't check whether the files were created.

> And -1 is not a valid error number :(

It's EPERM :) - but yeah probably not really the right error in this
case.

Still I think this patch is an improvement so I'll plan to merge it.

cheers
Immad Mir June 3, 2023, 2:33 p.m. UTC | #4
> Still I think this patch is an improvement so I'll plan to merge it.

Please let me know when you commit it.

Thanks
Immad.

On Tue, May 30, 2023 at 4:17 PM Michael Ellerman <mpe@ellerman.id.au> wrote:

> Greg KH <gregkh@linuxfoundation.org> writes:
> > On Sun, May 28, 2023 at 01:16:44PM +0530, mirimmad@outlook.com wrote:
> >> From: Immad Mir <mirimmad17@gmail.com>
> >>
> >> The debugfs_create_dir returns ERR_PTR incase of an error and the
> >> correct way of checking it by using the IS_ERR inline function, and
> >> not the simple null comparision. This patch fixes this.
> >>
> >> Suggested-By: Ivan Orlov <ivan.orlov0322@gmail.com>
> >> Signed-off-by: Immad Mir <mirimmad17@gmail.com>
> >> ---
> >>  arch/powerpc/platforms/powernv/opal-xscom.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c
> b/arch/powerpc/platforms/powernv/opal-xscom.c
> >> index 6b4eed2ef..262cd6fac 100644
> >> --- a/arch/powerpc/platforms/powernv/opal-xscom.c
> >> +++ b/arch/powerpc/platforms/powernv/opal-xscom.c
> >> @@ -168,7 +168,7 @@ static int scom_debug_init_one(struct dentry *root,
> struct device_node *dn,
> >>      ent->path.size = strlen((char *)ent->path.data);
> >>
> >>      dir = debugfs_create_dir(ent->name, root);
> >> -    if (!dir) {
> >> +    if (IS_ERR(dir)) {
> >>              kfree(ent->path.data);
> >>              kfree(ent);
> >>              return -1;
> >
> > Why is this driver caring if debugfs is working or not at all?  It
> > should just ignore the error and keep moving forward.
>
> It's creating directories and then creating files in those directories.
> So I think it makes sense that it checks that the directory was created
> successfully. It doesn't check whether the files were created.
>
> > And -1 is not a valid error number :(
>
> It's EPERM :) - but yeah probably not really the right error in this
> case.
>
> Still I think this patch is an improvement so I'll plan to merge it.
>
> cheers
>
Michael Ellerman Aug. 31, 2023, 4:02 a.m. UTC | #5
On Sun, 28 May 2023 13:16:44 +0530, mirimmad@outlook.com wrote:
> The debugfs_create_dir returns ERR_PTR incase of an error and the
> correct way of checking it by using the IS_ERR inline function, and
> not the simple null comparision. This patch fixes this.
> 
> 

Applied to powerpc/next.

[1/1] powerpc: fix debugfs_create_dir error checking
      https://git.kernel.org/powerpc/c/429356fac0440b962aaa6d3688709813a21dd122

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c b/arch/powerpc/platforms/powernv/opal-xscom.c
index 6b4eed2ef..262cd6fac 100644
--- a/arch/powerpc/platforms/powernv/opal-xscom.c
+++ b/arch/powerpc/platforms/powernv/opal-xscom.c
@@ -168,7 +168,7 @@  static int scom_debug_init_one(struct dentry *root, struct device_node *dn,
 	ent->path.size = strlen((char *)ent->path.data);

 	dir = debugfs_create_dir(ent->name, root);
-	if (!dir) {
+	if (IS_ERR(dir)) {
 		kfree(ent->path.data);
 		kfree(ent);
 		return -1;
@@ -190,7 +190,7 @@  static int scom_debug_init(void)
 		return 0;

 	root = debugfs_create_dir("scom", arch_debugfs_dir);
-	if (!root)
+	if (IS_ERR(root))
 		return -1;

 	rc = 0;