drivers/vfio/pci/nvgrace-gpu/main.c:167:9: sparse: sparse: cast from restricted vm_fault_t
From: kernel test robot
Date: Mon Mar 02 2026 - 05:37:40 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 11439c4635edd669ae435eec308f4ab8a0804808
commit: 9db65489b87298f20baef683e70143c108959793 vfio/nvgrace-gpu: Add support for huge pfnmap
date: 3 months ago
config: um-randconfig-r121-20260302 (https://download.01.org/0day-ci/archive/20260302/202603021851.Tj2pQDEI-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260302/202603021851.Tj2pQDEI-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603021851.Tj2pQDEI-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/vfio/pci/nvgrace-gpu/main.c:167:9: sparse: sparse: cast from restricted vm_fault_t
drivers/vfio/pci/nvgrace-gpu/main.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
arch/um/include/asm/uaccess.h:45:18: sparse: sparse: unsigned value that used to be signed checked against zero?
drivers/vfio/pci/nvgrace-gpu/main.c:371:40: sparse: signed value source
arch/um/include/asm/uaccess.h:45:18: sparse: sparse: unsigned value that used to be signed checked against zero?
drivers/vfio/pci/nvgrace-gpu/main.c:410:42: sparse: signed value source
arch/um/include/asm/uaccess.h:45:18: sparse: sparse: unsigned value that used to be signed checked against zero?
drivers/vfio/pci/nvgrace-gpu/main.c:556:23: sparse: signed value source
vim +167 drivers/vfio/pci/nvgrace-gpu/main.c
142
143 static vm_fault_t nvgrace_gpu_vfio_pci_huge_fault(struct vm_fault *vmf,
144 unsigned int order)
145 {
146 struct vm_area_struct *vma = vmf->vma;
147 struct nvgrace_gpu_pci_core_device *nvdev = vma->vm_private_data;
148 struct vfio_pci_core_device *vdev = &nvdev->core_device;
149 unsigned int index =
150 vma->vm_pgoff >> (VFIO_PCI_OFFSET_SHIFT - PAGE_SHIFT);
151 vm_fault_t ret = VM_FAULT_FALLBACK;
152 struct mem_region *memregion;
153 unsigned long pfn, addr;
154
155 memregion = nvgrace_gpu_memregion(index, nvdev);
156 if (!memregion)
157 return VM_FAULT_SIGBUS;
158
159 addr = ALIGN_DOWN(vmf->address, PAGE_SIZE << order);
160 pfn = PHYS_PFN(memregion->memphys) + addr_to_pgoff(vma, addr);
161
162 if (is_aligned_for_order(vma, addr, pfn, order)) {
163 scoped_guard(rwsem_read, &vdev->memory_lock)
164 ret = vfio_pci_vmf_insert_pfn(vdev, vmf, pfn, order);
165 }
166
> 167 dev_dbg_ratelimited(&vdev->pdev->dev,
168 "%s order = %d pfn 0x%lx: 0x%x\n",
169 __func__, order, pfn,
170 (unsigned int)ret);
171
172 return ret;
173 }
174
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki