drivers/vfio/pci/nvgrace-gpu/main.c:167:9: sparse: sparse: cast from restricted vm_fault_t

From: kernel test robot

Date: Tue Jun 23 2026 - 22:34:41 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 840ef6c78e6a2f694b578ecb9063241c992aaa9e
commit: 9db65489b87298f20baef683e70143c108959793 vfio/nvgrace-gpu: Add support for huge pfnmap
date: 7 months ago
config: loongarch-randconfig-r134-20260624 (https://download.01.org/0day-ci/archive/20260624/202606241043.u5Fe3HZv-lkp@xxxxxxxxx/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project a9b492db3d50683e446cd1a5c9ffaf4e92cb77a7)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260624/202606241043.u5Fe3HZv-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
| Fixes: 9db65489b872 ("vfio/nvgrace-gpu: Add support for huge pfnmap")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606241043.u5Fe3HZv-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

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