CC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Imran Khan <[email protected]>
Hi Imran, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on ea586a076e8aa606c59b66d86660590f18354b11] url: https://github.com/0day-ci/linux/commits/Imran-Khan/kernfs-use-kernfs_node-specific-mutex-and-spinlock/20220103-164752 base: ea586a076e8aa606c59b66d86660590f18354b11 :::::: branch date: 22 hours ago :::::: commit date: 22 hours ago config: arm-randconfig-c002-20220102 (https://download.01.org/0day-ci/archive/20220104/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b50fea47b6c454581fce89af359f3afe5154986c) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/3dd2a5f81a41be1f22391cc8ef0ac78293de0141 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Imran-Khan/kernfs-use-kernfs_node-specific-mutex-and-spinlock/20220103-164752 git checkout 3dd2a5f81a41be1f22391cc8ef0ac78293de0141 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) drivers/gpu/drm/drm_ioctl.c:390:7: note: Assuming field 'drm_di_major' is equal to DRM_IF_MAJOR if (sv->drm_di_major != DRM_IF_MAJOR || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:390:7: note: Left side of '||' is false drivers/gpu/drm/drm_ioctl.c:391:7: note: Assuming field 'drm_di_minor' is >= 0 sv->drm_di_minor < 0 || sv->drm_di_minor > DRM_IF_MINOR) { ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:390:7: note: Left side of '||' is false if (sv->drm_di_major != DRM_IF_MAJOR || ^ drivers/gpu/drm/drm_ioctl.c:391:31: note: Assuming field 'drm_di_minor' is <= DRM_IF_MINOR sv->drm_di_minor < 0 || sv->drm_di_minor > DRM_IF_MINOR) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:390:3: note: Taking false branch if (sv->drm_di_major != DRM_IF_MAJOR || ^ drivers/gpu/drm/drm_ioctl.c:397:21: note: Assuming '__UNIQUE_ID___x289' is <= '__UNIQUE_ID___y290' dev->if_version = max(if_version, dev->if_version); ^ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:397:21: note: '?' condition is false dev->if_version = max(if_version, dev->if_version); ^ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ drivers/gpu/drm/drm_ioctl.c:398:7: note: Assuming field 'drm_di_minor' is >= 1 if (sv->drm_di_minor >= 1) { ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:398:3: note: Taking true branch if (sv->drm_di_minor >= 1) { ^ drivers/gpu/drm/drm_ioctl.c:403:14: note: Calling 'drm_set_busid' retcode = drm_set_busid(dev, file_priv); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:150:6: note: Assuming field 'unique' is equal to NULL if (master->unique != NULL) ^~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:150:2: note: Taking false branch if (master->unique != NULL) ^ drivers/gpu/drm/drm_ioctl.c:153:6: note: Assuming field 'dev' is null if (dev->dev && dev_is_pci(dev->dev)) { ^~~~~~~~ drivers/gpu/drm/drm_ioctl.c:153:15: note: Left side of '&&' is false if (dev->dev && dev_is_pci(dev->dev)) { ^ drivers/gpu/drm/drm_ioctl.c:160:11: note: Assuming field 'unique' is null WARN_ON(!dev->unique); ^ include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:162:7: note: Assuming field 'unique' is non-null if (master->unique) ^~~~~~~~~~~~~~ drivers/gpu/drm/drm_ioctl.c:162:3: note: Taking true branch if (master->unique) ^ drivers/gpu/drm/drm_ioctl.c:163:25: note: Null pointer passed as 1st argument to string length function master->unique_len = strlen(dev->unique); ^ ~~~~~~~~~~~ Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 15 warnings generated. >> fs/kernfs/inode.c:102:22: warning: Value stored to 'root' during its >> initialization is never read [clang-analyzer-deadcode.DeadStores] struct kernfs_root *root = kernfs_root(kn); ^~~~ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:102:22: note: Value stored to 'root' during its initialization is never read struct kernfs_root *root = kernfs_root(kn); ^~~~ ~~~~~~~~~~~~~~~ >> fs/kernfs/inode.c:123:2: warning: Value stored to 'root' is never read >> [clang-analyzer-deadcode.DeadStores] root = kernfs_root(kn); ^ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:123:2: note: Value stored to 'root' is never read root = kernfs_root(kn); ^ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:194:22: warning: Value stored to 'root' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct kernfs_root *root = kernfs_root(kn); ^~~~ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:194:22: note: Value stored to 'root' during its initialization is never read struct kernfs_root *root = kernfs_root(kn); ^~~~ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:295:2: warning: Value stored to 'root' is never read [clang-analyzer-deadcode.DeadStores] root = kernfs_root(kn); ^ ~~~~~~~~~~~~~~~ fs/kernfs/inode.c:295:2: note: Value stored to 'root' is never read root = kernfs_root(kn); ^ ~~~~~~~~~~~~~~~ Suppressed 11 warnings (7 in non-user code, 4 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (6 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. arch/arm/mach-pxa/pcm990-baseboard.c:344:3: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores] val |= PCM990_CTRL_MMC2PWR; ^ arch/arm/mach-pxa/pcm990-baseboard.c:344:3: note: Value stored to 'val' is never read arch/arm/mach-pxa/pcm990-baseboard.c:346:3: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores] val &= ~PCM990_CTRL_MMC2PWR; ^ ~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-pxa/pcm990-baseboard.c:346:3: note: Value stored to 'val' is never read val &= ~PCM990_CTRL_MMC2PWR; ^ ~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (7 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (7 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (7 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 11 warnings generated. ipc/sem.c:688:29: warning: Access to field 'sem_num' results in a dereference of a null pointer (loaded from variable 'sop') [clang-analyzer-core.NullDereference] ipc_update_pid(&sma->sems[sop->sem_num].sempid, pid); ^ ipc/sem.c:2344:6: note: Assuming 'ulp' is non-null vim +/root +102 fs/kernfs/inode.c ffed24e22845a3 Tejun Heo 2013-11-28 91 ffed24e22845a3 Tejun Heo 2013-11-28 92 /** ffed24e22845a3 Tejun Heo 2013-11-28 93 * kernfs_setattr - set iattr on a node 324a56e16e44ba Tejun Heo 2013-12-11 94 * @kn: target node ffed24e22845a3 Tejun Heo 2013-11-28 95 * @iattr: iattr to set ffed24e22845a3 Tejun Heo 2013-11-28 96 * ffed24e22845a3 Tejun Heo 2013-11-28 97 * Returns 0 on success, -errno on failure. ffed24e22845a3 Tejun Heo 2013-11-28 98 */ 324a56e16e44ba Tejun Heo 2013-12-11 99 int kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) ffed24e22845a3 Tejun Heo 2013-11-28 100 { ffed24e22845a3 Tejun Heo 2013-11-28 101 int ret; 393c3714081a53 Minchan Kim 2021-11-18 @102 struct kernfs_root *root = kernfs_root(kn); ffed24e22845a3 Tejun Heo 2013-11-28 103 3dd2a5f81a41be Imran Khan 2022-01-03 104 kernfs_get(kn); 3dd2a5f81a41be Imran Khan 2022-01-03 105 down_write(&kn->kernfs_iop_rwsem); 324a56e16e44ba Tejun Heo 2013-12-11 106 ret = __kernfs_setattr(kn, iattr); 3dd2a5f81a41be Imran Khan 2022-01-03 107 up_write(&kn->kernfs_iop_rwsem); 3dd2a5f81a41be Imran Khan 2022-01-03 108 kernfs_put(kn); ffed24e22845a3 Tejun Heo 2013-11-28 109 return ret; ffed24e22845a3 Tejun Heo 2013-11-28 110 } ffed24e22845a3 Tejun Heo 2013-11-28 111 549c7297717c32 Christian Brauner 2021-01-21 112 int kernfs_iop_setattr(struct user_namespace *mnt_userns, struct dentry *dentry, 549c7297717c32 Christian Brauner 2021-01-21 113 struct iattr *iattr) ffed24e22845a3 Tejun Heo 2013-11-28 114 { 2b0143b5c986be David Howells 2015-03-17 115 struct inode *inode = d_inode(dentry); 319ba91d352a74 Shaohua Li 2017-07-12 116 struct kernfs_node *kn = inode->i_private; 393c3714081a53 Minchan Kim 2021-11-18 117 struct kernfs_root *root; ffed24e22845a3 Tejun Heo 2013-11-28 118 int error; ffed24e22845a3 Tejun Heo 2013-11-28 119 324a56e16e44ba Tejun Heo 2013-12-11 120 if (!kn) ffed24e22845a3 Tejun Heo 2013-11-28 121 return -EINVAL; ffed24e22845a3 Tejun Heo 2013-11-28 122 393c3714081a53 Minchan Kim 2021-11-18 @123 root = kernfs_root(kn); 3dd2a5f81a41be Imran Khan 2022-01-03 124 kernfs_get(kn); 3dd2a5f81a41be Imran Khan 2022-01-03 125 down_write(&kn->kernfs_iop_rwsem); 2f221d6f7b881d Christian Brauner 2021-01-21 126 error = setattr_prepare(&init_user_ns, dentry, iattr); ffed24e22845a3 Tejun Heo 2013-11-28 127 if (error) ffed24e22845a3 Tejun Heo 2013-11-28 128 goto out; ffed24e22845a3 Tejun Heo 2013-11-28 129 324a56e16e44ba Tejun Heo 2013-12-11 130 error = __kernfs_setattr(kn, iattr); ffed24e22845a3 Tejun Heo 2013-11-28 131 if (error) ffed24e22845a3 Tejun Heo 2013-11-28 132 goto out; ffed24e22845a3 Tejun Heo 2013-11-28 133 ffed24e22845a3 Tejun Heo 2013-11-28 134 /* this ignores size changes */ 2f221d6f7b881d Christian Brauner 2021-01-21 135 setattr_copy(&init_user_ns, inode, iattr); ffed24e22845a3 Tejun Heo 2013-11-28 136 ffed24e22845a3 Tejun Heo 2013-11-28 137 out: 3dd2a5f81a41be Imran Khan 2022-01-03 138 up_write(&kn->kernfs_iop_rwsem); 3dd2a5f81a41be Imran Khan 2022-01-03 139 kernfs_put(kn); ffed24e22845a3 Tejun Heo 2013-11-28 140 return error; ffed24e22845a3 Tejun Heo 2013-11-28 141 } ffed24e22845a3 Tejun Heo 2013-11-28 142 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
