Re: [PATCH v2 03/10] PCI/P2PDMA: Refactor to separate core P2P functionality from memory allocation
From: Alex Williamson
Date: Thu Sep 25 2025 - 18:31:50 EST
On Thu, 25 Sep 2025 08:53:08 -0300
Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:
> On Thu, Sep 25, 2025 at 10:03:14AM +0300, Leon Romanovsky wrote:
>
> > > It would at least make sense to me then to store the provider on the
> > > vfio_pci_dma_buf object at the time of the get feature call rather than
> > > vfio_pci_core_init_dev() though. That would eliminate patch 08/ and
> > > the inline #ifdefs.
> >
> > I'll change it now. If "enable" function goes to be "get" function, we
> > won't need to store anything in vfio_pci_dma_buf too. At the end, we
> > have exactly two lines "provider = priv->vdev->provider[priv->bar];",
> > which can easily be changed to be "provider = pcim_p2pdma_provider(priv->vdev->pdev, priv->bar)"
>
> Not without some kind of locking change. I'd keep the
> priv->vdev->provider[priv->bar] because setup during probe doesn't
> need special locking.
Why do we need to store the provider on the vfio_pci_core_device at
probe though, we can get it later via pcim_p2pdma_provider(). Ideally
we'd take the opportunity to pull out the setup part of the _provider
function to give us an initialization interface to use at probe time
without an unnecessary BAR# arg. Thanks,
Alex