On Thu, 25 Sep 2025 08:53:08 -0300 Jason Gunthorpe <j...@nvidia.com> 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