On Thu, 2018-07-26 at 22:22 +0800, Coly Li wrote: > Global variable bcache_debug is firstly initialized in bch_debug_init(), > and destroyed in bch_debug_exit(). bch_debug_init() is called in > bcache_init() with many other functions, if one of the previous calling > onces failed, bcache_exit() will be called in the failure path. > > The problem is, if bcache_init() fails before bch_debug_init() is called, > then in bcache_exit() when bch_debug_exit() is called to destroy global > variable bcache_debug, at this moment bcache_debug is unndefined, then the > test of "if (!IS_ERR_OR_NULL(bcache_debug))" might be buggy. > > This patch initializes global varabile bcache_debug to be NULL, to make > the failure code path to be predictable. > > Signed-off-by: Coly Li <[email protected]> > --- > drivers/md/bcache/debug.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/md/bcache/debug.c b/drivers/md/bcache/debug.c > index 57f8f5aeee55..24b0eb65ddec 100644 > --- a/drivers/md/bcache/debug.c > +++ b/drivers/md/bcache/debug.c > @@ -17,7 +17,7 @@ > #include <linux/random.h> > #include <linux/seq_file.h> > > -struct dentry *bcache_debug; > +struct dentry *bcache_debug = NULL; > > #ifdef CONFIG_BCACHE_DEBUG
Please verify patches with checkpatch before posting these. Checkpatch is namely able to detect that this patch is useless: $ scripts/checkpatch.pl \[PATCH_8_9\]_bcache\:_initiate_bcache_debug_to_NULL.mbox ERROR: do not initialise globals to NULL #217: FILE: drivers/md/bcache/debug.c:20: +struct dentry *bcache_debug = NULL; Bart.
