fs/super.c:1785:15: sparse: sparse: Using plain integer as NULL pointer

From: kernel test robot
Date: Fri Nov 17 2023 - 13:55:05 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6bc40e44f1ddef16a787f3501b97f1fff909177c
commit: 439bc39b3cf0014b1b75075812f7ef0f8baa9674 fs: move sb_init_dio_done_wq out of direct-io.c
date: 10 months ago
config: hexagon-randconfig-r121-20231117 (https://download.01.org/0day-ci/archive/20231118/202311180239.Iu9L00NA-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20231118/202311180239.Iu9L00NA-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311180239.Iu9L00NA-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> fs/super.c:1785:15: sparse: sparse: Using plain integer as NULL pointer

vim +1785 fs/super.c

1767
1768 /*
1769 * Create workqueue for deferred direct IO completions. We allocate the
1770 * workqueue when it's first needed. This avoids creating workqueue for
1771 * filesystems that don't need it and also allows us to create the workqueue
1772 * late enough so the we can include s_id in the name of the workqueue.
1773 */
1774 int sb_init_dio_done_wq(struct super_block *sb)
1775 {
1776 struct workqueue_struct *old;
1777 struct workqueue_struct *wq = alloc_workqueue("dio/%s",
1778 WQ_MEM_RECLAIM, 0,
1779 sb->s_id);
1780 if (!wq)
1781 return -ENOMEM;
1782 /*
1783 * This has to be atomic as more DIOs can race to create the workqueue
1784 */
> 1785 old = cmpxchg(&sb->s_dio_done_wq, NULL, wq);

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki