Re: [RFC v4 5/8] hisi_acc_vfio_pci: Restrict access to VF dev BAR2 migration region

From: Jason Gunthorpe
Date: Thu Feb 10 2022 - 10:19:47 EST


On Thu, Feb 10, 2022 at 03:01:50PM +0000, Shameerali Kolothum Thodi wrote:
> > > + unsigned int index = VFIO_PCI_OFFSET_TO_INDEX(*ppos);
> > > + struct vfio_pci_core_device *vdev =
> > > + container_of(core_vdev, struct vfio_pci_core_device, vdev);
> > > +
> > > + if (index == VFIO_PCI_BAR2_REGION_INDEX) {
> > > + loff_t pos = *ppos & VFIO_PCI_OFFSET_MASK;
> > > + resource_size_t end = pci_resource_len(vdev->pdev, index) / 2;
> >
> > Be careful here, there are nested assignment use cases. This can only
> > survive one level of assignment before we've restricted more than we
> > intended. If migration support is dependent on PF access, can we use
> > that to determine when to when to expose only half the BAR and when to
> > expose the full BAR?
>
> Ok. I will add a check here.

You might be better to just install a different ops when migration is
not supported, none of this stuff should be actived in that case.

Jason