All of lore.kernel.org
 help / color / mirror / Atom feed
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/drm_gpusvm.c:933 drm_gpusvm_range_chunk_size() error: uninitialized symbol 'end'.
Date: Sun, 11 Jan 2026 04:13:53 +0800	[thread overview]
Message-ID: <202601110432.5RH1Bfes-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Alistair Popple <apopple@nvidia.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
CC: "Björn Töpel" <bjorn@rivosinc.com>
CC: Jason Gunthorpe <jgg@nvidia.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   97313d6113ab4362ad15076f65560e65288fbcb8
commit: d438d273417055241ebaaf1ba3be23459fc27cba mm: remove devmap related functions and page table bits
date:   6 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 6 months ago
config: s390-randconfig-r072-20260109 (https://download.01.org/0day-ci/archive/20260111/202601110432.5RH1Bfes-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
smatch version: v0.5.0-8985-g2614ff1a

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202601110432.5RH1Bfes-lkp@intel.com/

New smatch warnings:
drivers/gpu/drm/drm_gpusvm.c:933 drm_gpusvm_range_chunk_size() error: uninitialized symbol 'end'.
drivers/gpu/drm/drm_gpusvm.c:933 drm_gpusvm_range_chunk_size() error: uninitialized symbol 'start'.

Old smatch warnings:
drivers/gpu/drm/drm_gpusvm.c:1427 drm_gpusvm_range_get_pages() error: uninitialized symbol 'pagemap'.
drivers/gpu/drm/drm_gpusvm.c:1446 drm_gpusvm_range_get_pages() error: uninitialized symbol 'dpagemap'.

vim +/end +933 drivers/gpu/drm/drm_gpusvm.c

99624bdff86707 Matthew Brost 2025-03-05  885  
99624bdff86707 Matthew Brost 2025-03-05  886  /**
99624bdff86707 Matthew Brost 2025-03-05  887   * drm_gpusvm_range_chunk_size() - Determine chunk size for GPU SVM range
99624bdff86707 Matthew Brost 2025-03-05  888   * @gpusvm: Pointer to the GPU SVM structure
99624bdff86707 Matthew Brost 2025-03-05  889   * @notifier: Pointer to the GPU SVM notifier structure
99624bdff86707 Matthew Brost 2025-03-05  890   * @vas: Pointer to the virtual memory area structure
99624bdff86707 Matthew Brost 2025-03-05  891   * @fault_addr: Fault address
99624bdff86707 Matthew Brost 2025-03-05  892   * @gpuva_start: Start address of GPUVA which mirrors CPU
99624bdff86707 Matthew Brost 2025-03-05  893   * @gpuva_end: End address of GPUVA which mirrors CPU
99624bdff86707 Matthew Brost 2025-03-05  894   * @check_pages_threshold: Check CPU pages for present threshold
99624bdff86707 Matthew Brost 2025-03-05  895   *
99624bdff86707 Matthew Brost 2025-03-05  896   * This function determines the chunk size for the GPU SVM range based on the
99624bdff86707 Matthew Brost 2025-03-05  897   * fault address, GPU SVM chunk sizes, existing GPU SVM ranges, and the virtual
99624bdff86707 Matthew Brost 2025-03-05  898   * memory area boundaries.
99624bdff86707 Matthew Brost 2025-03-05  899   *
99624bdff86707 Matthew Brost 2025-03-05  900   * Return: Chunk size on success, LONG_MAX on failure.
99624bdff86707 Matthew Brost 2025-03-05  901   */
99624bdff86707 Matthew Brost 2025-03-05  902  static unsigned long
99624bdff86707 Matthew Brost 2025-03-05  903  drm_gpusvm_range_chunk_size(struct drm_gpusvm *gpusvm,
99624bdff86707 Matthew Brost 2025-03-05  904  			    struct drm_gpusvm_notifier *notifier,
99624bdff86707 Matthew Brost 2025-03-05  905  			    struct vm_area_struct *vas,
99624bdff86707 Matthew Brost 2025-03-05  906  			    unsigned long fault_addr,
99624bdff86707 Matthew Brost 2025-03-05  907  			    unsigned long gpuva_start,
99624bdff86707 Matthew Brost 2025-03-05  908  			    unsigned long gpuva_end,
99624bdff86707 Matthew Brost 2025-03-05  909  			    unsigned long check_pages_threshold)
99624bdff86707 Matthew Brost 2025-03-05  910  {
99624bdff86707 Matthew Brost 2025-03-05  911  	unsigned long start, end;
99624bdff86707 Matthew Brost 2025-03-05  912  	int i = 0;
99624bdff86707 Matthew Brost 2025-03-05  913  
99624bdff86707 Matthew Brost 2025-03-05  914  retry:
99624bdff86707 Matthew Brost 2025-03-05  915  	for (; i < gpusvm->num_chunks; ++i) {
99624bdff86707 Matthew Brost 2025-03-05  916  		start = ALIGN_DOWN(fault_addr, gpusvm->chunk_sizes[i]);
99624bdff86707 Matthew Brost 2025-03-05  917  		end = ALIGN(fault_addr + 1, gpusvm->chunk_sizes[i]);
99624bdff86707 Matthew Brost 2025-03-05  918  
99624bdff86707 Matthew Brost 2025-03-05  919  		if (start >= vas->vm_start && end <= vas->vm_end &&
99624bdff86707 Matthew Brost 2025-03-05  920  		    start >= drm_gpusvm_notifier_start(notifier) &&
99624bdff86707 Matthew Brost 2025-03-05  921  		    end <= drm_gpusvm_notifier_end(notifier) &&
99624bdff86707 Matthew Brost 2025-03-05  922  		    start >= gpuva_start && end <= gpuva_end)
99624bdff86707 Matthew Brost 2025-03-05  923  			break;
99624bdff86707 Matthew Brost 2025-03-05  924  	}
99624bdff86707 Matthew Brost 2025-03-05  925  
99624bdff86707 Matthew Brost 2025-03-05  926  	if (i == gpusvm->num_chunks)
99624bdff86707 Matthew Brost 2025-03-05  927  		return LONG_MAX;
99624bdff86707 Matthew Brost 2025-03-05  928  
99624bdff86707 Matthew Brost 2025-03-05  929  	/*
99624bdff86707 Matthew Brost 2025-03-05  930  	 * If allocation more than page, ensure not to overlap with existing
99624bdff86707 Matthew Brost 2025-03-05  931  	 * ranges.
99624bdff86707 Matthew Brost 2025-03-05  932  	 */
99624bdff86707 Matthew Brost 2025-03-05 @933  	if (end - start != SZ_4K) {
99624bdff86707 Matthew Brost 2025-03-05  934  		struct drm_gpusvm_range *range;
99624bdff86707 Matthew Brost 2025-03-05  935  
99624bdff86707 Matthew Brost 2025-03-05  936  		range = drm_gpusvm_range_find(notifier, start, end);
99624bdff86707 Matthew Brost 2025-03-05  937  		if (range) {
99624bdff86707 Matthew Brost 2025-03-05  938  			++i;
99624bdff86707 Matthew Brost 2025-03-05  939  			goto retry;
99624bdff86707 Matthew Brost 2025-03-05  940  		}
99624bdff86707 Matthew Brost 2025-03-05  941  
99624bdff86707 Matthew Brost 2025-03-05  942  		/*
99624bdff86707 Matthew Brost 2025-03-05  943  		 * XXX: Only create range on pages CPU has faulted in. Without
99624bdff86707 Matthew Brost 2025-03-05  944  		 * this check, or prefault, on BMG 'xe_exec_system_allocator --r
99624bdff86707 Matthew Brost 2025-03-05  945  		 * process-many-malloc' fails. In the failure case, each process
99624bdff86707 Matthew Brost 2025-03-05  946  		 * mallocs 16k but the CPU VMA is ~128k which results in 64k SVM
99624bdff86707 Matthew Brost 2025-03-05  947  		 * ranges. When migrating the SVM ranges, some processes fail in
99624bdff86707 Matthew Brost 2025-03-05  948  		 * drm_gpusvm_migrate_to_devmem with 'migrate.cpages != npages'
99624bdff86707 Matthew Brost 2025-03-05  949  		 * and then upon drm_gpusvm_range_get_pages device pages from
99624bdff86707 Matthew Brost 2025-03-05  950  		 * other processes are collected + faulted in which creates all
99624bdff86707 Matthew Brost 2025-03-05  951  		 * sorts of problems. Unsure exactly how this happening, also
99624bdff86707 Matthew Brost 2025-03-05  952  		 * problem goes away if 'xe_exec_system_allocator --r
99624bdff86707 Matthew Brost 2025-03-05  953  		 * process-many-malloc' mallocs at least 64k at a time.
99624bdff86707 Matthew Brost 2025-03-05  954  		 */
99624bdff86707 Matthew Brost 2025-03-05  955  		if (end - start <= check_pages_threshold &&
99624bdff86707 Matthew Brost 2025-03-05  956  		    !drm_gpusvm_check_pages(gpusvm, notifier, start, end)) {
99624bdff86707 Matthew Brost 2025-03-05  957  			++i;
99624bdff86707 Matthew Brost 2025-03-05  958  			goto retry;
99624bdff86707 Matthew Brost 2025-03-05  959  		}
99624bdff86707 Matthew Brost 2025-03-05  960  	}
99624bdff86707 Matthew Brost 2025-03-05  961  
99624bdff86707 Matthew Brost 2025-03-05  962  	return end - start;
99624bdff86707 Matthew Brost 2025-03-05  963  }
99624bdff86707 Matthew Brost 2025-03-05  964  

:::::: The code at line 933 was first introduced by commit
:::::: 99624bdff8670795b678eafa6509aaad3a5c0175 drm/gpusvm: Add support for GPU Shared Virtual Memory

:::::: TO: Matthew Brost <matthew.brost@intel.com>
:::::: CC: Matthew Brost <matthew.brost@intel.com>

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

             reply	other threads:[~2026-01-10 20:14 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-10 20:13 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-01-10  6:57 drivers/gpu/drm/drm_gpusvm.c:933 drm_gpusvm_range_chunk_size() error: uninitialized symbol 'end' 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=202601110432.5RH1Bfes-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 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.