Re: [RFC] Making vma_to_pfn() public (due to vm_pgoff change)

From: Alex Williamson

Date: Mon Oct 27 2025 - 22:17:14 EST


On Mon, 27 Oct 2025 14:21:56 -0700
Mukesh R <mrathor@xxxxxxxxxxxxxxxxxxx> wrote:

> Hi Alex,
>
> This regards vfio passthru support on hyperv running linux as dom0 aka
> root. At a high level, cloud hypervisor uses vfio for set up as usual,
> then maps the mmio ranges via the hyperv linux driver ioctls.
>
> Over a year ago, when working on this I had used vm_pgoff to get the pfn
> for the mmio, that was 5.15 and early 6.x kernels. Now that I am porting
> to 6.18 for upstreaming, I noticed:
>
> commit aac6db75a9fc
> Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
> vfio/pci: Use unmap_mapping_range()
>
> changed the behavior and vm_pgoff is no longer holding the pfn. In light
> of that, I wondered if the following minor change, making vma_to_pfn()
> public (after renaming it), would be acceptable to you.

How do you know the device is using vfio_pci_core_mmap() with these
semantics for vm_pgoff versus something like nvgrace_gpu_mmap() that
uses vm_pgoff more like you're expecting? vma_to_pfn() is specific to
the vfio-pci-core semantics, it's not portable to expose for other use
cases. Thanks,

Alex