On 2026-02-26 04:15 PM, Alex Williamson wrote:
> On Thu, 29 Jan 2026 21:24:55 +0000 David Matlack <[email protected]> wrote:

> > +   /*
> > +    * This device was preserved across a Live Update. Accessing it via
> > +    * VFIO_GROUP_GET_DEVICE_FD is not allowed.
> > +    */
> > +   if (vfio_liveupdate_incoming_is_preserved(device)) {
> > +           vfio_device_put_registration(device);
> > +           return -EBUSY;
> 
> Is this an EPERM issue then?

I was thinking EBUSY in the sense that the device is only temporarily
inaccesible through this interface due it being in a preserved state as
part of a Live Update. Once the preserved device file is retreived and
closed, the device can be accessed again through
VFIO_GROUP_GET_DEVICE_FD.

EPERM might lead to confusion that there is a filesystem permission
issue?

> > +#ifdef CONFIG_LIVEUPDATE
> > +static inline bool vfio_liveupdate_incoming_is_preserved(struct 
> > vfio_device *device)
> > +{
> > +   struct device *d = device->dev;
> > +
> > +   if (dev_is_pci(d))
> > +           return to_pci_dev(d)->liveupdate_incoming;
> > +
> > +   return false;
> > +}
> > +#else
> > +static inline bool vfio_liveupdate_incoming_is_preserved(struct 
> > vfio_device *device)
> > +{
> > +   return false;
> > +}
> > +#endif
> 
> Why does this need to be in the public header versus
> drivers/vfio/vfio.h?

No good reason. I'll make it private.

Reply via email to