On Fri, Oct 17, 2025 at 5:07 PM Vipin Sharma <[email protected]> wrote: > +static const struct liveupdate_file_ops vfio_pci_luo_fops = { > + .retrieve = vfio_pci_liveupdate_retrieve, > + .can_preserve = vfio_pci_liveupdate_can_preserve, > + .owner = THIS_MODULE, > +}; > + > +static struct liveupdate_file_handler vfio_pci_luo_handler = { > + .ops = &vfio_pci_luo_fops, > + .compatible = "vfio-v1", > +}; > + > +void __init vfio_pci_liveupdate_init(void) > +{ > + int err = liveupdate_register_file_handler(&vfio_pci_luo_handler); > + > + if (err) > + pr_err("VFIO PCI liveupdate file handler register failed, > error %d.\n", err); > +}
Alex and Jason, should this go in the top-level VFIO directory? And then have all the preservation logic go through vfio_device_ops? That would make Live Update support for VFIO cdev files extensible to other drivers in the future.

