[PATCH v3 17/19] drm/xe/uapi: Add UAPI for querying VMA count and memory attributes

kernel test robot lkp at intel.com
Fri May 30 01:11:49 UTC 2025


Hi Himal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-xe/drm-xe-next]
[also build test WARNING on next-20250529]
[cannot apply to linus/master v6.15]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Himal-Prasad-Ghimiray/Introduce-drm_gpuvm_sm_map_ops_flags-enums-for-sm_map_ops/20250528-041919
base:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link:    https://lore.kernel.org/r/20250527164003.1068118-18-himal.prasad.ghimiray%40intel.com
patch subject: [PATCH v3 17/19] drm/xe/uapi: Add UAPI for querying VMA count and memory attributes
config: loongarch-randconfig-r073-20250529 (https://download.01.org/0day-ci/archive/20250530/202505300820.fmdHkQH6-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 15.1.0

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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505300820.fmdHkQH6-lkp@intel.com/

New smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:2213 xe_vm_query_vmas_attrs_ioctl() warn: unsigned 'args->num_vmas' is never less than zero.
drivers/gpu/drm/xe/xe_vm.c:2249 xe_vm_query_vmas_attrs_ioctl() warn: maybe return -EFAULT instead of the bytes remaining?

Old smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:2583 new_vma() error: we previously assumed 'bo' could be null (see line 2557)
drivers/gpu/drm/xe/xe_vm.c:2595 new_vma() error: 'vma' dereferencing possible ERR_PTR()
drivers/gpu/drm/xe/xe_vm.c:3033 prefetch_ranges() warn: iterator 'i' not incremented
drivers/gpu/drm/xe/xe_vm.c:4035 xe_vm_range_tilemask_tlb_invalidation() error: uninitialized symbol 'err'.
arch/loongarch/include/asm/atomic.h:135 arch_atomic_fetch_add_unless() warn: inconsistent indenting
drivers/gpu/drm/xe/xe_vm.c:4241 xe_vm_snapshot_print() warn: passing zero to 'PTR_ERR'
drivers/gpu/drm/xe/xe_vm.c:4402 xe_vm_alloc_madvise_vma() warn: variable dereferenced before check 'ops' (see line 4341)

vim +2213 drivers/gpu/drm/xe/xe_vm.c

  2202	
  2203	int xe_vm_query_vmas_attrs_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
  2204	{
  2205		struct xe_device *xe = to_xe_device(dev);
  2206		struct xe_file *xef = to_xe_file(file);
  2207		struct drm_xe_vma_mem_attr *mem_attrs;
  2208		struct drm_xe_vm_query_vmas_attr *args = data;
  2209		u64 __user *attrs_user = NULL;
  2210		struct xe_vm *vm;
  2211		int err = 0;
  2212	
> 2213		if (XE_IOCTL_DBG(xe, args->num_vmas < 0))
  2214			return -EINVAL;
  2215	
  2216		vm = xe_vm_lookup(xef, args->vm_id);
  2217		if (XE_IOCTL_DBG(xe, !vm))
  2218			return -EINVAL;
  2219	
  2220		down_read(&vm->lock);
  2221	
  2222		attrs_user = u64_to_user_ptr(args->vector_of_vma_mem_attr);
  2223	
  2224		if (args->num_vmas == 0 && !attrs_user) {
  2225			xe_vm_query_vmas(vm, &args->num_vmas, args->start, args->start + args->range);
  2226			goto unlock_vm;
  2227		}
  2228	
  2229		mem_attrs = kvmalloc_array(args->num_vmas, sizeof(struct drm_xe_vma_mem_attr),
  2230					   GFP_KERNEL | __GFP_ACCOUNT |
  2231					   __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
  2232		if (!mem_attrs) {
  2233			err = args->num_vmas > 1 ? -ENOBUFS : -ENOMEM;
  2234			goto unlock_vm;
  2235		}
  2236	
  2237		err = get_mem_attrs(vm, &args->num_vmas, args->start,
  2238				    args->start + args->range, mem_attrs);
  2239		if (err)
  2240			goto free_mem_attrs;
  2241	
  2242		err = __copy_to_user(attrs_user, mem_attrs,
  2243				     sizeof(struct drm_xe_vma_mem_attr) * args->num_vmas);
  2244	
  2245	free_mem_attrs:
  2246		kvfree(mem_attrs);
  2247	unlock_vm:
  2248		up_read(&vm->lock);
> 2249		return err;
  2250	}
  2251	

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


More information about the Intel-xe mailing list