Re: [PATCH v3] xen/debugfs: Check debugfs initialization beforeusing it

From: Greg KH
Date: Mon Dec 09 2013 - 13:38:02 EST


On Mon, Dec 09, 2013 at 09:49:36PM +0800, Ethan Zhao wrote:
> On Mon, Dec 9, 2013 at 7:19 PM, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, Dec 09, 2013 at 05:56:52PM +0800, Ethan Zhao wrote:
> >> From: "ethan.zhao" <ethan.kernel@xxxxxxxxx>
> >>
> >> Should check debugfs initialization with debugfs_initialized() before using it,
> >> Because if it isn't initialized, the return value of fake debugfs_create_dir() etc
> >> functions would be ERR_PTR(-ENODEV), checking with NULL will not work.
> >>
> >> V3: add warning message when debugfs not configured or disabled.
> >
> > That's not what this patch does...
> >
> >> Signed-off-by: ethan.zhao <ethan.kernel@xxxxxxxxx>
> >> ---
> >> arch/x86/xen/debugfs.c | 6 ++++++
> >> 1 file changed, 6 insertions(+)
> >>
> >> diff --git a/arch/x86/xen/debugfs.c b/arch/x86/xen/debugfs.c
> >> index c8377fb..85c0e0e 100644
> >> --- a/arch/x86/xen/debugfs.c
> >> +++ b/arch/x86/xen/debugfs.c
> >> @@ -9,12 +9,18 @@ static struct dentry *d_xen_debug;
> >>
> >> struct dentry * __init xen_init_debugfs(void)
> >> {
> >> + if (!debugfs_initialized()) {
> >> + d_xen_debug = NULL;
> >> + goto nodebugfs;
> >> + }
> >
> > Again, why is this even needed?
> >
> > What problem in the existing code are you trying to solve?
> >
> What I want to ask who is so smart and fake some many functions when
> CONFIG_DEBUG_FS is not configured/defined and the build could pass
> without any error ?

That's the way this has always worked.

> What is the motive make him wrote some many fake function and why he
> wrote the debugfs_initialized() function seem 'useless' at all ?

To make the caller code easier, and smaller, and to not care if debugfs
is enabled in the kernel build or not at all.

Ok, I answered your questions, now care to answer mine?

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/