From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/gpu/drm/msm/msm_gem_vma.c:392 msm_gem_vma_new() error: we previously assumed 'obj' could be null (see line 377)
Date: Sun, 24 May 2026 03:19:52 +0800 [thread overview]
Message-ID: <202605240304.WXDESai7-lkp@intel.com> (raw)
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
next reply other threads:[~2026-05-23 19:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-23 19:19 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-09-09 0:55 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
2026-09-10 14:47 kernel test robot
2026-09-12 14:33 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202605240304.WXDESai7-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox