On 2026-02-25 02:33 PM, Alex Williamson wrote:
> On Thu, 29 Jan 2026 21:24:51 +0000
> David Matlack <[email protected]> wrote:
> > +int __init vfio_pci_liveupdate_init(void)
> > +{
> > + if (!liveupdate_enabled())
> > + return 0;
> > +
> > + return liveupdate_register_file_handler(&vfio_pci_liveupdate_fh);
> > +}
>
> liveupdate_register_file_handler() "pins" vfio-pci with a
> try_module_get(). Since this is done in our module_init function and
> unregister occurs in our module_exit function, rather than relative
> to any actual device binding or usage, this means vfio-pci CANNOT be
> unloaded. That seems bad. Thanks,
Good point. So a better approach that would allow vfio-pci to be
unloaded would be to register the file handler when the number of
devices bound to vfio-pci goes from 0->1 and then unregister on 1->0.