All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)
@ 2026-09-12 14:33 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-09-12 14:33 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Rob Clark <robin.clark@oss.qualcomm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   08df884136f1c1197bab2a27814404fd329d9aac
commit: c07612365087c8873f3faa2a47642ffa73b12c54 drm/msm: Disallow foreign mapping of _NO_SHARE
date:   6 months ago
:::::: branch date: 2 days ago
:::::: commit date: 6 months ago
config: arc-randconfig-r072-20260907 (https://download.01.org/0day-ci/archive/20260912/202609122209.bqaOqmiT-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 11.5.0
smatch: v0.5.0-9187-g5189e3fb

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
| Fixes: c07612365087 ("drm/msm: Disallow foreign mapping of _NO_SHARE")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202609122209.bqaOqmiT-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)

vim +/obj +392 drivers/gpu/drm/msm/msm_gem_vma.c

7ad0e8cf6317825 Jordan Crouse         2018-11-07  365  
da0e1407beb3a40 Rob Clark             2025-06-29  366  /* Create a new vma and allocate an iova for it */
37889600f58ea55 Rob Clark             2025-06-29  367  struct drm_gpuva *
37889600f58ea55 Rob Clark             2025-06-29  368  msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
2c7ad9925523f64 Rob Clark             2025-06-29  369  		u64 offset, u64 range_start, u64 range_end)
fc2f07566a2cb19 Rob Clark             2023-03-20  370  {
37889600f58ea55 Rob Clark             2025-06-29  371  	struct msm_gem_vm *vm = to_msm_vm(gpuvm);
111fdd2198e63b1 Rob Clark             2025-06-29  372  	struct drm_gpuvm_bo *vm_bo;
fc2f07566a2cb19 Rob Clark             2023-03-20  373  	struct msm_gem_vma *vma;
da0e1407beb3a40 Rob Clark             2025-06-29  374  	int ret;
fc2f07566a2cb19 Rob Clark             2023-03-20  375  
c07612365087c88 Rob Clark             2026-03-24  376  	/* _NO_SHARE objs cannot be mapped outside of their "host" vm: */
c07612365087c88 Rob Clark             2026-03-24 @377  	if (obj && (to_msm_bo(obj)->flags & MSM_BO_NO_SHARE) &&
c07612365087c88 Rob Clark             2026-03-24  378  	    GEM_WARN_ON(obj->resv != drm_gpuvm_resv(gpuvm))) {
c07612365087c88 Rob Clark             2026-03-24  379  		return ERR_PTR(-EINVAL);
c07612365087c88 Rob Clark             2026-03-24  380  	}
c07612365087c88 Rob Clark             2026-03-24  381  
fe4952b5f27cca5 Rob Clark             2025-06-29  382  	drm_gpuvm_resv_assert_held(&vm->base);
fe4952b5f27cca5 Rob Clark             2025-06-29  383  
fc2f07566a2cb19 Rob Clark             2023-03-20  384  	vma = kzalloc(sizeof(*vma), GFP_KERNEL);
fc2f07566a2cb19 Rob Clark             2023-03-20  385  	if (!vma)
da0e1407beb3a40 Rob Clark             2025-06-29  386  		return ERR_PTR(-ENOMEM);
fc2f07566a2cb19 Rob Clark             2023-03-20  387  
111fdd2198e63b1 Rob Clark             2025-06-29  388  	if (vm->managed) {
2c7ad9925523f64 Rob Clark             2025-06-29  389  		BUG_ON(offset != 0);
2e6a8a1fe2b262a Rob Clark             2025-06-29  390  		BUG_ON(!obj);  /* NULL mappings not valid for kernel managed VM */
057e55f337c5bb2 Rob Clark             2025-06-29  391  		ret = drm_mm_insert_node_in_range(&vm->mm, &vma->node,
da0e1407beb3a40 Rob Clark             2025-06-29 @392  						obj->size, PAGE_SIZE, 0,
2ee4b5d265363f1 Rob Clark             2022-04-11  393  						range_start, range_end, 0);
0e08270a1f01bce Sushmita Susheelendra 2017-06-13  394  
667ce33e57d0de4 Rob Clark             2016-09-28  395  		if (ret)
da0e1407beb3a40 Rob Clark             2025-06-29  396  			goto err_free_vma;
667ce33e57d0de4 Rob Clark             2016-09-28  397  
111fdd2198e63b1 Rob Clark             2025-06-29  398  		range_start = vma->node.start;
111fdd2198e63b1 Rob Clark             2025-06-29  399  		range_end   = range_start + obj->size;
111fdd2198e63b1 Rob Clark             2025-06-29  400  	}
111fdd2198e63b1 Rob Clark             2025-06-29  401  
2e6a8a1fe2b262a Rob Clark             2025-06-29  402  	if (obj)
111fdd2198e63b1 Rob Clark             2025-06-29  403  		GEM_WARN_ON((range_end - range_start) > obj->size);
111fdd2198e63b1 Rob Clark             2025-06-29  404  
efe927b9702643a Dmitry Baryshkov      2025-08-23  405  	struct drm_gpuva_op_map op_map = {
efe927b9702643a Dmitry Baryshkov      2025-08-23  406  		.va.addr = range_start,
efe927b9702643a Dmitry Baryshkov      2025-08-23  407  		.va.range = range_end - range_start,
efe927b9702643a Dmitry Baryshkov      2025-08-23  408  		.gem.obj = obj,
efe927b9702643a Dmitry Baryshkov      2025-08-23  409  		.gem.offset = offset,
efe927b9702643a Dmitry Baryshkov      2025-08-23  410  	};
efe927b9702643a Dmitry Baryshkov      2025-08-23  411  
3309323241fbb3c Boris Brezillon       2025-08-19  412  	drm_gpuva_init_from_op(&vma->base, &op_map);
c0ee9794693c1ff Jordan Crouse         2018-11-07  413  	vma->mapped = false;
667ce33e57d0de4 Rob Clark             2016-09-28  414  
111fdd2198e63b1 Rob Clark             2025-06-29  415  	ret = drm_gpuva_insert(&vm->base, &vma->base);
111fdd2198e63b1 Rob Clark             2025-06-29  416  	if (ret)
111fdd2198e63b1 Rob Clark             2025-06-29  417  		goto err_free_range;
da0e1407beb3a40 Rob Clark             2025-06-29  418  
2e6a8a1fe2b262a Rob Clark             2025-06-29  419  	if (!obj)
2e6a8a1fe2b262a Rob Clark             2025-06-29  420  		return &vma->base;
2e6a8a1fe2b262a Rob Clark             2025-06-29  421  
111fdd2198e63b1 Rob Clark             2025-06-29  422  	vm_bo = drm_gpuvm_bo_obtain(&vm->base, obj);
111fdd2198e63b1 Rob Clark             2025-06-29  423  	if (IS_ERR(vm_bo)) {
111fdd2198e63b1 Rob Clark             2025-06-29  424  		ret = PTR_ERR(vm_bo);
111fdd2198e63b1 Rob Clark             2025-06-29  425  		goto err_va_remove;
111fdd2198e63b1 Rob Clark             2025-06-29  426  	}
111fdd2198e63b1 Rob Clark             2025-06-29  427  
111fdd2198e63b1 Rob Clark             2025-06-29  428  	drm_gpuvm_bo_extobj_add(vm_bo);
111fdd2198e63b1 Rob Clark             2025-06-29  429  	drm_gpuva_link(&vma->base, vm_bo);
111fdd2198e63b1 Rob Clark             2025-06-29  430  	GEM_WARN_ON(drm_gpuvm_bo_put(vm_bo));
667ce33e57d0de4 Rob Clark             2016-09-28  431  
37889600f58ea55 Rob Clark             2025-06-29  432  	return &vma->base;
da0e1407beb3a40 Rob Clark             2025-06-29  433  
111fdd2198e63b1 Rob Clark             2025-06-29  434  err_va_remove:
111fdd2198e63b1 Rob Clark             2025-06-29  435  	drm_gpuva_remove(&vma->base);
111fdd2198e63b1 Rob Clark             2025-06-29  436  err_free_range:
111fdd2198e63b1 Rob Clark             2025-06-29  437  	if (vm->managed)
111fdd2198e63b1 Rob Clark             2025-06-29  438  		drm_mm_remove_node(&vma->node);
da0e1407beb3a40 Rob Clark             2025-06-29  439  err_free_vma:
da0e1407beb3a40 Rob Clark             2025-06-29  440  	kfree(vma);
da0e1407beb3a40 Rob Clark             2025-06-29  441  	return ERR_PTR(ret);
667ce33e57d0de4 Rob Clark             2016-09-28  442  }
667ce33e57d0de4 Rob Clark             2016-09-28  443  

:::::: The code at line 392 was first introduced by commit
:::::: da0e1407beb3a40e1b78418b257b849befb24bc6 drm/msm: Collapse vma allocation and initialization

:::::: TO: Rob Clark <robdclark@chromium.org>
:::::: CC: Rob Clark <robin.clark@oss.qualcomm.com>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread
* drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)
@ 2026-09-10 14:47 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-09-10 14:47 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Rob Clark <robin.clark@oss.qualcomm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   50d05c7c76c96b90462f24debacca971d2e86713
commit: c07612365087c8873f3faa2a47642ffa73b12c54 drm/msm: Disallow foreign mapping of _NO_SHARE
date:   5 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 5 months ago
config: arc-randconfig-r072-20260907 (https://download.01.org/0day-ci/archive/20260910/202609102210.J9Ag5Rin-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 11.5.0
smatch: v0.5.0-9187-g5189e3fb

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
| Fixes: c07612365087 ("drm/msm: Disallow foreign mapping of _NO_SHARE")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202609102210.J9Ag5Rin-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)

vim +/obj +392 drivers/gpu/drm/msm/msm_gem_vma.c

7ad0e8cf631782 Jordan Crouse         2018-11-07  365  
da0e1407beb3a4 Rob Clark             2025-06-29  366  /* Create a new vma and allocate an iova for it */
37889600f58ea5 Rob Clark             2025-06-29  367  struct drm_gpuva *
37889600f58ea5 Rob Clark             2025-06-29  368  msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
2c7ad9925523f6 Rob Clark             2025-06-29  369  		u64 offset, u64 range_start, u64 range_end)
fc2f07566a2cb1 Rob Clark             2023-03-20  370  {
37889600f58ea5 Rob Clark             2025-06-29  371  	struct msm_gem_vm *vm = to_msm_vm(gpuvm);
111fdd2198e63b Rob Clark             2025-06-29  372  	struct drm_gpuvm_bo *vm_bo;
fc2f07566a2cb1 Rob Clark             2023-03-20  373  	struct msm_gem_vma *vma;
da0e1407beb3a4 Rob Clark             2025-06-29  374  	int ret;
fc2f07566a2cb1 Rob Clark             2023-03-20  375  
c07612365087c8 Rob Clark             2026-03-24  376  	/* _NO_SHARE objs cannot be mapped outside of their "host" vm: */
c07612365087c8 Rob Clark             2026-03-24 @377  	if (obj && (to_msm_bo(obj)->flags & MSM_BO_NO_SHARE) &&
c07612365087c8 Rob Clark             2026-03-24  378  	    GEM_WARN_ON(obj->resv != drm_gpuvm_resv(gpuvm))) {
c07612365087c8 Rob Clark             2026-03-24  379  		return ERR_PTR(-EINVAL);
c07612365087c8 Rob Clark             2026-03-24  380  	}
c07612365087c8 Rob Clark             2026-03-24  381  
fe4952b5f27cca Rob Clark             2025-06-29  382  	drm_gpuvm_resv_assert_held(&vm->base);
fe4952b5f27cca Rob Clark             2025-06-29  383  
fc2f07566a2cb1 Rob Clark             2023-03-20  384  	vma = kzalloc(sizeof(*vma), GFP_KERNEL);
fc2f07566a2cb1 Rob Clark             2023-03-20  385  	if (!vma)
da0e1407beb3a4 Rob Clark             2025-06-29  386  		return ERR_PTR(-ENOMEM);
fc2f07566a2cb1 Rob Clark             2023-03-20  387  
111fdd2198e63b Rob Clark             2025-06-29  388  	if (vm->managed) {
2c7ad9925523f6 Rob Clark             2025-06-29  389  		BUG_ON(offset != 0);
2e6a8a1fe2b262 Rob Clark             2025-06-29  390  		BUG_ON(!obj);  /* NULL mappings not valid for kernel managed VM */
057e55f337c5bb Rob Clark             2025-06-29  391  		ret = drm_mm_insert_node_in_range(&vm->mm, &vma->node,
da0e1407beb3a4 Rob Clark             2025-06-29 @392  						obj->size, PAGE_SIZE, 0,
2ee4b5d265363f Rob Clark             2022-04-11  393  						range_start, range_end, 0);
0e08270a1f01bc Sushmita Susheelendra 2017-06-13  394  
667ce33e57d0de Rob Clark             2016-09-28  395  		if (ret)
da0e1407beb3a4 Rob Clark             2025-06-29  396  			goto err_free_vma;
667ce33e57d0de Rob Clark             2016-09-28  397  
111fdd2198e63b Rob Clark             2025-06-29  398  		range_start = vma->node.start;
111fdd2198e63b Rob Clark             2025-06-29  399  		range_end   = range_start + obj->size;
111fdd2198e63b Rob Clark             2025-06-29  400  	}
111fdd2198e63b Rob Clark             2025-06-29  401  
2e6a8a1fe2b262 Rob Clark             2025-06-29  402  	if (obj)
111fdd2198e63b Rob Clark             2025-06-29  403  		GEM_WARN_ON((range_end - range_start) > obj->size);
111fdd2198e63b Rob Clark             2025-06-29  404  
efe927b9702643 Dmitry Baryshkov      2025-08-23  405  	struct drm_gpuva_op_map op_map = {
efe927b9702643 Dmitry Baryshkov      2025-08-23  406  		.va.addr = range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  407  		.va.range = range_end - range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  408  		.gem.obj = obj,
efe927b9702643 Dmitry Baryshkov      2025-08-23  409  		.gem.offset = offset,
efe927b9702643 Dmitry Baryshkov      2025-08-23  410  	};
efe927b9702643 Dmitry Baryshkov      2025-08-23  411  
3309323241fbb3 Boris Brezillon       2025-08-19  412  	drm_gpuva_init_from_op(&vma->base, &op_map);
c0ee9794693c1f Jordan Crouse         2018-11-07  413  	vma->mapped = false;
667ce33e57d0de Rob Clark             2016-09-28  414  
111fdd2198e63b Rob Clark             2025-06-29  415  	ret = drm_gpuva_insert(&vm->base, &vma->base);
111fdd2198e63b Rob Clark             2025-06-29  416  	if (ret)
111fdd2198e63b Rob Clark             2025-06-29  417  		goto err_free_range;
da0e1407beb3a4 Rob Clark             2025-06-29  418  
2e6a8a1fe2b262 Rob Clark             2025-06-29  419  	if (!obj)
2e6a8a1fe2b262 Rob Clark             2025-06-29  420  		return &vma->base;
2e6a8a1fe2b262 Rob Clark             2025-06-29  421  
111fdd2198e63b Rob Clark             2025-06-29  422  	vm_bo = drm_gpuvm_bo_obtain(&vm->base, obj);
111fdd2198e63b Rob Clark             2025-06-29  423  	if (IS_ERR(vm_bo)) {
111fdd2198e63b Rob Clark             2025-06-29  424  		ret = PTR_ERR(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  425  		goto err_va_remove;
111fdd2198e63b Rob Clark             2025-06-29  426  	}
111fdd2198e63b Rob Clark             2025-06-29  427  
111fdd2198e63b Rob Clark             2025-06-29  428  	drm_gpuvm_bo_extobj_add(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  429  	drm_gpuva_link(&vma->base, vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  430  	GEM_WARN_ON(drm_gpuvm_bo_put(vm_bo));
667ce33e57d0de Rob Clark             2016-09-28  431  
37889600f58ea5 Rob Clark             2025-06-29  432  	return &vma->base;
da0e1407beb3a4 Rob Clark             2025-06-29  433  
111fdd2198e63b Rob Clark             2025-06-29  434  err_va_remove:
111fdd2198e63b Rob Clark             2025-06-29  435  	drm_gpuva_remove(&vma->base);
111fdd2198e63b Rob Clark             2025-06-29  436  err_free_range:
111fdd2198e63b Rob Clark             2025-06-29  437  	if (vm->managed)
111fdd2198e63b Rob Clark             2025-06-29  438  		drm_mm_remove_node(&vma->node);
da0e1407beb3a4 Rob Clark             2025-06-29  439  err_free_vma:
da0e1407beb3a4 Rob Clark             2025-06-29  440  	kfree(vma);
da0e1407beb3a4 Rob Clark             2025-06-29  441  	return ERR_PTR(ret);
667ce33e57d0de Rob Clark             2016-09-28  442  }
667ce33e57d0de Rob Clark             2016-09-28  443  

:::::: The code at line 392 was first introduced by commit
:::::: da0e1407beb3a40e1b78418b257b849befb24bc6 drm/msm: Collapse vma allocation and initialization

:::::: TO: Rob Clark <robdclark@chromium.org>
:::::: CC: Rob Clark <robin.clark@oss.qualcomm.com>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread
* drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)
@ 2026-09-09  0:55 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-09-09  0:55 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Rob Clark <robin.clark@oss.qualcomm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   893e11787f78e43b534e252249ac3fff4d1333f8
commit: c07612365087c8873f3faa2a47642ffa73b12c54 drm/msm: Disallow foreign mapping of _NO_SHARE
date:   5 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 5 months ago
config: arc-randconfig-r072-20260907 (https://download.01.org/0day-ci/archive/20260909/202609090807.LTN2GI7H-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 11.5.0
smatch: v0.5.0-9187-g5189e3fb

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
| Fixes: c07612365087 ("drm/msm: Disallow foreign mapping of _NO_SHARE")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202609090807.LTN2GI7H-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)

vim +/obj +392 drivers/gpu/drm/msm/msm_gem_vma.c

7ad0e8cf631782 Jordan Crouse         2018-11-07  365  
da0e1407beb3a4 Rob Clark             2025-06-29  366  /* Create a new vma and allocate an iova for it */
37889600f58ea5 Rob Clark             2025-06-29  367  struct drm_gpuva *
37889600f58ea5 Rob Clark             2025-06-29  368  msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
2c7ad9925523f6 Rob Clark             2025-06-29  369  		u64 offset, u64 range_start, u64 range_end)
fc2f07566a2cb1 Rob Clark             2023-03-20  370  {
37889600f58ea5 Rob Clark             2025-06-29  371  	struct msm_gem_vm *vm = to_msm_vm(gpuvm);
111fdd2198e63b Rob Clark             2025-06-29  372  	struct drm_gpuvm_bo *vm_bo;
fc2f07566a2cb1 Rob Clark             2023-03-20  373  	struct msm_gem_vma *vma;
da0e1407beb3a4 Rob Clark             2025-06-29  374  	int ret;
fc2f07566a2cb1 Rob Clark             2023-03-20  375  
c07612365087c8 Rob Clark             2026-03-24  376  	/* _NO_SHARE objs cannot be mapped outside of their "host" vm: */
c07612365087c8 Rob Clark             2026-03-24 @377  	if (obj && (to_msm_bo(obj)->flags & MSM_BO_NO_SHARE) &&
c07612365087c8 Rob Clark             2026-03-24  378  	    GEM_WARN_ON(obj->resv != drm_gpuvm_resv(gpuvm))) {
c07612365087c8 Rob Clark             2026-03-24  379  		return ERR_PTR(-EINVAL);
c07612365087c8 Rob Clark             2026-03-24  380  	}
c07612365087c8 Rob Clark             2026-03-24  381  
fe4952b5f27cca Rob Clark             2025-06-29  382  	drm_gpuvm_resv_assert_held(&vm->base);
fe4952b5f27cca Rob Clark             2025-06-29  383  
fc2f07566a2cb1 Rob Clark             2023-03-20  384  	vma = kzalloc(sizeof(*vma), GFP_KERNEL);
fc2f07566a2cb1 Rob Clark             2023-03-20  385  	if (!vma)
da0e1407beb3a4 Rob Clark             2025-06-29  386  		return ERR_PTR(-ENOMEM);
fc2f07566a2cb1 Rob Clark             2023-03-20  387  
111fdd2198e63b Rob Clark             2025-06-29  388  	if (vm->managed) {
2c7ad9925523f6 Rob Clark             2025-06-29  389  		BUG_ON(offset != 0);
2e6a8a1fe2b262 Rob Clark             2025-06-29  390  		BUG_ON(!obj);  /* NULL mappings not valid for kernel managed VM */
057e55f337c5bb Rob Clark             2025-06-29  391  		ret = drm_mm_insert_node_in_range(&vm->mm, &vma->node,
da0e1407beb3a4 Rob Clark             2025-06-29 @392  						obj->size, PAGE_SIZE, 0,
2ee4b5d265363f Rob Clark             2022-04-11  393  						range_start, range_end, 0);
0e08270a1f01bc Sushmita Susheelendra 2017-06-13  394  
667ce33e57d0de Rob Clark             2016-09-28  395  		if (ret)
da0e1407beb3a4 Rob Clark             2025-06-29  396  			goto err_free_vma;
667ce33e57d0de Rob Clark             2016-09-28  397  
111fdd2198e63b Rob Clark             2025-06-29  398  		range_start = vma->node.start;
111fdd2198e63b Rob Clark             2025-06-29  399  		range_end   = range_start + obj->size;
111fdd2198e63b Rob Clark             2025-06-29  400  	}
111fdd2198e63b Rob Clark             2025-06-29  401  
2e6a8a1fe2b262 Rob Clark             2025-06-29  402  	if (obj)
111fdd2198e63b Rob Clark             2025-06-29  403  		GEM_WARN_ON((range_end - range_start) > obj->size);
111fdd2198e63b Rob Clark             2025-06-29  404  
efe927b9702643 Dmitry Baryshkov      2025-08-23  405  	struct drm_gpuva_op_map op_map = {
efe927b9702643 Dmitry Baryshkov      2025-08-23  406  		.va.addr = range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  407  		.va.range = range_end - range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  408  		.gem.obj = obj,
efe927b9702643 Dmitry Baryshkov      2025-08-23  409  		.gem.offset = offset,
efe927b9702643 Dmitry Baryshkov      2025-08-23  410  	};
efe927b9702643 Dmitry Baryshkov      2025-08-23  411  
3309323241fbb3 Boris Brezillon       2025-08-19  412  	drm_gpuva_init_from_op(&vma->base, &op_map);
c0ee9794693c1f Jordan Crouse         2018-11-07  413  	vma->mapped = false;
667ce33e57d0de Rob Clark             2016-09-28  414  
111fdd2198e63b Rob Clark             2025-06-29  415  	ret = drm_gpuva_insert(&vm->base, &vma->base);
111fdd2198e63b Rob Clark             2025-06-29  416  	if (ret)
111fdd2198e63b Rob Clark             2025-06-29  417  		goto err_free_range;
da0e1407beb3a4 Rob Clark             2025-06-29  418  
2e6a8a1fe2b262 Rob Clark             2025-06-29  419  	if (!obj)
2e6a8a1fe2b262 Rob Clark             2025-06-29  420  		return &vma->base;
2e6a8a1fe2b262 Rob Clark             2025-06-29  421  
111fdd2198e63b Rob Clark             2025-06-29  422  	vm_bo = drm_gpuvm_bo_obtain(&vm->base, obj);
111fdd2198e63b Rob Clark             2025-06-29  423  	if (IS_ERR(vm_bo)) {
111fdd2198e63b Rob Clark             2025-06-29  424  		ret = PTR_ERR(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  425  		goto err_va_remove;
111fdd2198e63b Rob Clark             2025-06-29  426  	}
111fdd2198e63b Rob Clark             2025-06-29  427  
111fdd2198e63b Rob Clark             2025-06-29  428  	drm_gpuvm_bo_extobj_add(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  429  	drm_gpuva_link(&vma->base, vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  430  	GEM_WARN_ON(drm_gpuvm_bo_put(vm_bo));
667ce33e57d0de Rob Clark             2016-09-28  431  
37889600f58ea5 Rob Clark             2025-06-29  432  	return &vma->base;
da0e1407beb3a4 Rob Clark             2025-06-29  433  
111fdd2198e63b Rob Clark             2025-06-29  434  err_va_remove:
111fdd2198e63b Rob Clark             2025-06-29  435  	drm_gpuva_remove(&vma->base);
111fdd2198e63b Rob Clark             2025-06-29  436  err_free_range:
111fdd2198e63b Rob Clark             2025-06-29  437  	if (vm->managed)
111fdd2198e63b Rob Clark             2025-06-29  438  		drm_mm_remove_node(&vma->node);
da0e1407beb3a4 Rob Clark             2025-06-29  439  err_free_vma:
da0e1407beb3a4 Rob Clark             2025-06-29  440  	kfree(vma);
da0e1407beb3a4 Rob Clark             2025-06-29  441  	return ERR_PTR(ret);
667ce33e57d0de Rob Clark             2016-09-28  442  }
667ce33e57d0de Rob Clark             2016-09-28  443  

:::::: The code at line 392 was first introduced by commit
:::::: da0e1407beb3a40e1b78418b257b849befb24bc6 drm/msm: Collapse vma allocation and initialization

:::::: TO: Rob Clark <robdclark@chromium.org>
:::::: CC: Rob Clark <robin.clark@oss.qualcomm.com>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread
* drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)
@ 2026-05-23 19:19 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-05-23 19:19 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Rob Clark <robin.clark@oss.qualcomm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   eed108edc1170404bbef9e7d0189d18a3cc354f5
commit: c07612365087c8873f3faa2a47642ffa73b12c54 drm/msm: Disallow foreign mapping of _NO_SHARE
date:   8 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 8 weeks ago
config: powerpc64-randconfig-r071-20260523 (https://download.01.org/0day-ci/archive/20260524/202605240304.WXDESai7-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
smatch: v0.5.0-9185-gbcc58b9c

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
| Fixes: c07612365087 ("drm/msm: Disallow foreign mapping of _NO_SHARE")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202605240304.WXDESai7-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)

vim +/obj +392 drivers/gpu/drm/msm/msm_gem_vma.c

7ad0e8cf631782 Jordan Crouse         2018-11-07  365  
da0e1407beb3a4 Rob Clark             2025-06-29  366  /* Create a new vma and allocate an iova for it */
37889600f58ea5 Rob Clark             2025-06-29  367  struct drm_gpuva *
37889600f58ea5 Rob Clark             2025-06-29  368  msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
2c7ad9925523f6 Rob Clark             2025-06-29  369  		u64 offset, u64 range_start, u64 range_end)
fc2f07566a2cb1 Rob Clark             2023-03-20  370  {
37889600f58ea5 Rob Clark             2025-06-29  371  	struct msm_gem_vm *vm = to_msm_vm(gpuvm);
111fdd2198e63b Rob Clark             2025-06-29  372  	struct drm_gpuvm_bo *vm_bo;
fc2f07566a2cb1 Rob Clark             2023-03-20  373  	struct msm_gem_vma *vma;
da0e1407beb3a4 Rob Clark             2025-06-29  374  	int ret;
fc2f07566a2cb1 Rob Clark             2023-03-20  375  
c07612365087c8 Rob Clark             2026-03-24  376  	/* _NO_SHARE objs cannot be mapped outside of their "host" vm: */
c07612365087c8 Rob Clark             2026-03-24 @377  	if (obj && (to_msm_bo(obj)->flags & MSM_BO_NO_SHARE) &&
c07612365087c8 Rob Clark             2026-03-24  378  	    GEM_WARN_ON(obj->resv != drm_gpuvm_resv(gpuvm))) {
c07612365087c8 Rob Clark             2026-03-24  379  		return ERR_PTR(-EINVAL);
c07612365087c8 Rob Clark             2026-03-24  380  	}
c07612365087c8 Rob Clark             2026-03-24  381  
fe4952b5f27cca Rob Clark             2025-06-29  382  	drm_gpuvm_resv_assert_held(&vm->base);
fe4952b5f27cca Rob Clark             2025-06-29  383  
fc2f07566a2cb1 Rob Clark             2023-03-20  384  	vma = kzalloc(sizeof(*vma), GFP_KERNEL);
fc2f07566a2cb1 Rob Clark             2023-03-20  385  	if (!vma)
da0e1407beb3a4 Rob Clark             2025-06-29  386  		return ERR_PTR(-ENOMEM);
fc2f07566a2cb1 Rob Clark             2023-03-20  387  
111fdd2198e63b Rob Clark             2025-06-29  388  	if (vm->managed) {
2c7ad9925523f6 Rob Clark             2025-06-29  389  		BUG_ON(offset != 0);
2e6a8a1fe2b262 Rob Clark             2025-06-29  390  		BUG_ON(!obj);  /* NULL mappings not valid for kernel managed VM */
057e55f337c5bb Rob Clark             2025-06-29  391  		ret = drm_mm_insert_node_in_range(&vm->mm, &vma->node,
da0e1407beb3a4 Rob Clark             2025-06-29 @392  						obj->size, PAGE_SIZE, 0,
2ee4b5d265363f Rob Clark             2022-04-11  393  						range_start, range_end, 0);
0e08270a1f01bc Sushmita Susheelendra 2017-06-13  394  
667ce33e57d0de Rob Clark             2016-09-28  395  		if (ret)
da0e1407beb3a4 Rob Clark             2025-06-29  396  			goto err_free_vma;
667ce33e57d0de Rob Clark             2016-09-28  397  
111fdd2198e63b Rob Clark             2025-06-29  398  		range_start = vma->node.start;
111fdd2198e63b Rob Clark             2025-06-29  399  		range_end   = range_start + obj->size;
111fdd2198e63b Rob Clark             2025-06-29  400  	}
111fdd2198e63b Rob Clark             2025-06-29  401  
2e6a8a1fe2b262 Rob Clark             2025-06-29  402  	if (obj)
111fdd2198e63b Rob Clark             2025-06-29  403  		GEM_WARN_ON((range_end - range_start) > obj->size);
111fdd2198e63b Rob Clark             2025-06-29  404  
efe927b9702643 Dmitry Baryshkov      2025-08-23  405  	struct drm_gpuva_op_map op_map = {
efe927b9702643 Dmitry Baryshkov      2025-08-23  406  		.va.addr = range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  407  		.va.range = range_end - range_start,
efe927b9702643 Dmitry Baryshkov      2025-08-23  408  		.gem.obj = obj,
efe927b9702643 Dmitry Baryshkov      2025-08-23  409  		.gem.offset = offset,
efe927b9702643 Dmitry Baryshkov      2025-08-23  410  	};
efe927b9702643 Dmitry Baryshkov      2025-08-23  411  
3309323241fbb3 Boris Brezillon       2025-08-19  412  	drm_gpuva_init_from_op(&vma->base, &op_map);
c0ee9794693c1f Jordan Crouse         2018-11-07  413  	vma->mapped = false;
667ce33e57d0de Rob Clark             2016-09-28  414  
111fdd2198e63b Rob Clark             2025-06-29  415  	ret = drm_gpuva_insert(&vm->base, &vma->base);
111fdd2198e63b Rob Clark             2025-06-29  416  	if (ret)
111fdd2198e63b Rob Clark             2025-06-29  417  		goto err_free_range;
da0e1407beb3a4 Rob Clark             2025-06-29  418  
2e6a8a1fe2b262 Rob Clark             2025-06-29  419  	if (!obj)
2e6a8a1fe2b262 Rob Clark             2025-06-29  420  		return &vma->base;
2e6a8a1fe2b262 Rob Clark             2025-06-29  421  
111fdd2198e63b Rob Clark             2025-06-29  422  	vm_bo = drm_gpuvm_bo_obtain(&vm->base, obj);
111fdd2198e63b Rob Clark             2025-06-29  423  	if (IS_ERR(vm_bo)) {
111fdd2198e63b Rob Clark             2025-06-29  424  		ret = PTR_ERR(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  425  		goto err_va_remove;
111fdd2198e63b Rob Clark             2025-06-29  426  	}
111fdd2198e63b Rob Clark             2025-06-29  427  
111fdd2198e63b Rob Clark             2025-06-29  428  	drm_gpuvm_bo_extobj_add(vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  429  	drm_gpuva_link(&vma->base, vm_bo);
111fdd2198e63b Rob Clark             2025-06-29  430  	GEM_WARN_ON(drm_gpuvm_bo_put(vm_bo));
667ce33e57d0de Rob Clark             2016-09-28  431  
37889600f58ea5 Rob Clark             2025-06-29  432  	return &vma->base;
da0e1407beb3a4 Rob Clark             2025-06-29  433  
111fdd2198e63b Rob Clark             2025-06-29  434  err_va_remove:
111fdd2198e63b Rob Clark             2025-06-29  435  	drm_gpuva_remove(&vma->base);
111fdd2198e63b Rob Clark             2025-06-29  436  err_free_range:
111fdd2198e63b Rob Clark             2025-06-29  437  	if (vm->managed)
111fdd2198e63b Rob Clark             2025-06-29  438  		drm_mm_remove_node(&vma->node);
da0e1407beb3a4 Rob Clark             2025-06-29  439  err_free_vma:
da0e1407beb3a4 Rob Clark             2025-06-29  440  	kfree(vma);
da0e1407beb3a4 Rob Clark             2025-06-29  441  	return ERR_PTR(ret);
667ce33e57d0de Rob Clark             2016-09-28  442  }
667ce33e57d0de Rob Clark             2016-09-28  443  

:::::: The code at line 392 was first introduced by commit
:::::: da0e1407beb3a40e1b78418b257b849befb24bc6 drm/msm: Collapse vma allocation and initialization

:::::: TO: Rob Clark <robdclark@chromium.org>
:::::: CC: Rob Clark <robin.clark@oss.qualcomm.com>

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-12 14:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-12 14:33 drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377) kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-09-10 14:47 kernel test robot
2026-09-09  0:55 kernel test robot
2026-05-23 19:19 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.