lkml.org 
[lkml]   [2020]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v12 01/15] iommu: Introduce attach/detach_pasid_table API
    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 <lkp@intel.com>

    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
    [unhandled content-type:application/gzip]
    \
     
     \ /
      Last update: 2020-11-16 16:16    [W:3.479 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site