Re: [PATCH v6 3/6] vfio: use vfio_pci_core_setup_barmap to map bar in mmap

From: Zhi Wang
Date: Tue Nov 25 2025 - 15:05:27 EST


On Tue, 25 Nov 2025 17:30:10 +0000
<ankita@xxxxxxxxxx> wrote:

LGTM.

Reviewed-by: Zhi Wang <zhiw@xxxxxxxxxx>

> From: Ankit Agrawal <ankita@xxxxxxxxxx>
>
> Remove code duplication in vfio_pci_core_mmap by calling
> vfio_pci_core_setup_barmap to perform the bar mapping.
>
> cc: Donald Dutile <ddutile@xxxxxxxxxx>
> Reviewed-by: Shameer Kolothum <skolothumtho@xxxxxxxxxx>
> Suggested-by: Alex Williamson <alex@xxxxxxxxxxx>
> Signed-off-by: Ankit Agrawal <ankita@xxxxxxxxxx>
> ---
> drivers/vfio/pci/vfio_pci_core.c | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/vfio/pci/vfio_pci_core.c
> b/drivers/vfio/pci/vfio_pci_core.c index c445a53ee12e..3cc799eb75ea
> 100644 --- a/drivers/vfio/pci/vfio_pci_core.c
> +++ b/drivers/vfio/pci/vfio_pci_core.c
> @@ -1761,18 +1761,9 @@ int vfio_pci_core_mmap(struct vfio_device
> *core_vdev, struct vm_area_struct *vma
> * Even though we don't make use of the barmap for the mmap,
> * we need to request the region and the barmap tracks that.
> */
> - if (!vdev->barmap[index]) {
> - ret = pci_request_selected_regions(pdev,
> - 1 << index,
> "vfio-pci");
> - if (ret)
> - return ret;
> -
> - vdev->barmap[index] = pci_iomap(pdev, index, 0);
> - if (!vdev->barmap[index]) {
> - pci_release_selected_regions(pdev, 1 <<
> index);
> - return -ENOMEM;
> - }
> - }
> + ret = vfio_pci_core_setup_barmap(vdev, index);
> + if (ret)
> + return ret;
>
> vma->vm_private_data = vdev;
> vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);