On Wed, Oct 11, 2023, Paolo Bonzini wrote: > Your patch 2 looks good, but perhaps instead of setting the owner we could > stash the struct module* in a global, and try_get/put it from open and > release respectively? That is, .owner keeps the kvm module alive and the > kvm module keeps kvm-intel/kvm-amd alive. That would subsume patches 1 and 3. I don't think that would be a net positive. We'd have to implement .open() for several file types just to get a reference to the sub-module. At that point, the odds of forgetting to implement .open() are about the same as forgetting to set .owner when adding a new file type, e.g. guest_memfd.