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 |
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. |
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
> 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 >
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
> 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 >
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 --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;