Hi Eric, I love your patch! Perhaps something to improve: [auto build test WARNING on iommu/next] [also build test WARNING on linus/master v5.10-rc4 next-20201116] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Eric-Auger/SMMUv3-Nested-Stage-Setup-IOMMU-part/20201116-185039 base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next config: arm64-randconfig-r034-20201115 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c044709b8fbea2a9a375e4173a6bd735f6866c0c) 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 arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/54be9a9e014a566f9c7640da201c24cfb1eda06e git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Eric-Auger/SMMUv3-Nested-Stage-Setup-IOMMU-part/20201116-185039 git checkout 54be9a9e014a566f9c7640da201c24cfb1eda06e # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/iommu/iommu.c:2225:34: warning: overlapping comparisons always evaluate to false [-Wtautological-overlap-compare] if (pasid_table_data.config < 1 && pasid_table_data.config > 3) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +2225 drivers/iommu/iommu.c 2182 2183 int iommu_uapi_attach_pasid_table(struct iommu_domain *domain, 2184 void __user *uinfo) 2185 { 2186 struct iommu_pasid_table_config pasid_table_data = { 0 }; 2187 u32 minsz; 2188 2189 if (unlikely(!domain->ops->attach_pasid_table)) 2190 return -ENODEV; 2191 2192 /* 2193 * No new spaces can be added before the variable sized union, the 2194 * minimum size is the offset to the union. 2195 */ 2196 minsz = offsetof(struct iommu_pasid_table_config, vendor_data); 2197 2198 /* Copy minsz from user to get flags and argsz */ 2199 if (copy_from_user(&pasid_table_data, uinfo, minsz)) 2200 return -EFAULT; 2201 2202 /* Fields before the variable size union are mandatory */ 2203 if (pasid_table_data.argsz < minsz) 2204 return -EINVAL; 2205 2206 /* PASID and address granu require additional info beyond minsz */ 2207 if (pasid_table_data.version != PASID_TABLE_CFG_VERSION_1) 2208 return -EINVAL; 2209 if (pasid_table_data.format == IOMMU_PASID_FORMAT_SMMUV3 && 2210 pasid_table_data.argsz < 2211 offsetofend(struct iommu_pasid_table_config, vendor_data.smmuv3)) 2212 return -EINVAL; 2213 2214 /* 2215 * User might be using a newer UAPI header which has a larger data 2216 * size, we shall support the existing flags within the current 2217 * size. Copy the remaining user data _after_ minsz but not more 2218 * than the current kernel supported size. 2219 */ 2220 if (copy_from_user((void *)&pasid_table_data + minsz, uinfo + minsz, 2221 min_t(u32, pasid_table_data.argsz, sizeof(pasid_table_data)) - minsz)) 2222 return -EFAULT; 2223 2224 /* Now the argsz is validated, check the content */ > 2225 if (pasid_table_data.config < 1 && pasid_table_data.config > 3) 2226 return -EINVAL; 2227 2228 return domain->ops->attach_pasid_table(domain, &pasid_table_data); 2229 } 2230 EXPORT_SYMBOL_GPL(iommu_uapi_attach_pasid_table); 2231 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org