[linux-next:master 9139/11507] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse: sparse: Using plain integer as NULL pointer

kernel test robot <[email protected]> Sat, 01 Aug 2026 12:33:37 +0800
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   415606a7be939835db9b0d6b711887586646346d
commit: 1d8cfeb69daa863a70134b8ed6df8055c418a5b0 [9139/11507] drm/amdgpu: Pack nested ucode_info struct
config: loongarch-randconfig-r112-20260731 (https://download.01.org/0day-ci/archive/20260801/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project bacfe2950f8218268fcc0a8765644ea0c15f0360)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260801/[email protected]/reproduce)

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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:1536:59: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem *vaddr_iomem @@     got void *[addressable] kaddr @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:1536:59: sparse:     expected void [noderef] __iomem *vaddr_iomem
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:1536:59: sparse:     got void *[addressable] kaddr
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:1550:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse: sparse: cast removes address space '__user' of expression
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse: sparse: cast removes address space '__user' of expression
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected unsigned long long [noderef] [usertype] __user *const [noderef] __user *__p @@     got unsigned long long [noderef] [usertype] __user ** @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse:     expected unsigned long long [noderef] [usertype] __user *const [noderef] __user *__p
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse:     got unsigned long long [noderef] [usertype] __user **
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c:2393:9: sparse: sparse: Using plain integer as NULL pointer

vim +2393 drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c

c2d2588c702364f Jonathan Kim 2022-04-08  2362  
c2d2588c702364f Jonathan Kim 2022-04-08  2363  static void send_exception_work_handler(struct work_struct *work)
c2d2588c702364f Jonathan Kim 2022-04-08  2364  {
c2d2588c702364f Jonathan Kim 2022-04-08  2365  	struct send_exception_work_handler_workarea *workarea;
c2d2588c702364f Jonathan Kim 2022-04-08  2366  	struct kfd_process *p;
c2d2588c702364f Jonathan Kim 2022-04-08  2367  	struct queue *q;
c2d2588c702364f Jonathan Kim 2022-04-08  2368  	struct mm_struct *mm;
c2d2588c702364f Jonathan Kim 2022-04-08  2369  	struct kfd_context_save_area_header __user *csa_header;
c2d2588c702364f Jonathan Kim 2022-04-08  2370  	uint64_t __user *err_payload_ptr;
c2d2588c702364f Jonathan Kim 2022-04-08  2371  	uint64_t cur_err;
c2d2588c702364f Jonathan Kim 2022-04-08  2372  	uint32_t ev_id;
c2d2588c702364f Jonathan Kim 2022-04-08  2373  
c2d2588c702364f Jonathan Kim 2022-04-08  2374  	workarea = container_of(work,
c2d2588c702364f Jonathan Kim 2022-04-08  2375  				struct send_exception_work_handler_workarea,
c2d2588c702364f Jonathan Kim 2022-04-08  2376  				work);
c2d2588c702364f Jonathan Kim 2022-04-08  2377  	p = workarea->p;
c2d2588c702364f Jonathan Kim 2022-04-08  2378  
c2d2588c702364f Jonathan Kim 2022-04-08  2379  	mm = get_task_mm(p->lead_thread);
c2d2588c702364f Jonathan Kim 2022-04-08  2380  
c2d2588c702364f Jonathan Kim 2022-04-08  2381  	if (!mm)
c2d2588c702364f Jonathan Kim 2022-04-08  2382  		return;
c2d2588c702364f Jonathan Kim 2022-04-08  2383  
c2d2588c702364f Jonathan Kim 2022-04-08  2384  	kthread_use_mm(mm);
c2d2588c702364f Jonathan Kim 2022-04-08  2385  
c2d2588c702364f Jonathan Kim 2022-04-08  2386  	q = pqm_get_user_queue(&p->pqm, workarea->queue_id);
c2d2588c702364f Jonathan Kim 2022-04-08  2387  
c2d2588c702364f Jonathan Kim 2022-04-08  2388  	if (!q)
c2d2588c702364f Jonathan Kim 2022-04-08  2389  		goto out;
c2d2588c702364f Jonathan Kim 2022-04-08  2390  
c2d2588c702364f Jonathan Kim 2022-04-08  2391  	csa_header = (void __user *)q->properties.ctx_save_restore_area_address;
c2d2588c702364f Jonathan Kim 2022-04-08  2392  
c2d2588c702364f Jonathan Kim 2022-04-08 @2393  	get_user(err_payload_ptr, (uint64_t __user **)&csa_header->err_payload_addr);
c2d2588c702364f Jonathan Kim 2022-04-08  2394  	get_user(cur_err, err_payload_ptr);
c2d2588c702364f Jonathan Kim 2022-04-08  2395  	cur_err |= workarea->error_reason;
c2d2588c702364f Jonathan Kim 2022-04-08  2396  	put_user(cur_err, err_payload_ptr);
c2d2588c702364f Jonathan Kim 2022-04-08  2397  	get_user(ev_id, &csa_header->err_event_id);
c2d2588c702364f Jonathan Kim 2022-04-08  2398  
c2d2588c702364f Jonathan Kim 2022-04-08  2399  	kfd_set_event(p, ev_id);
c2d2588c702364f Jonathan Kim 2022-04-08  2400  
c2d2588c702364f Jonathan Kim 2022-04-08  2401  out:
c2d2588c702364f Jonathan Kim 2022-04-08  2402  	kthread_unuse_mm(mm);
c2d2588c702364f Jonathan Kim 2022-04-08  2403  	mmput(mm);
c2d2588c702364f Jonathan Kim 2022-04-08  2404  }
c2d2588c702364f Jonathan Kim 2022-04-08  2405  

:::::: The code at line 2393 was first introduced by commit
:::::: c2d2588c702364ff53916ddd97e2b26fd4f4a317 drm/amdkfd: add send exception operation

:::::: TO: Jonathan Kim <[email protected]>
:::::: CC: Alex Deucher <[email protected]>

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