On 2024-03-04 14:49, Xu Yilun wrote: >> Just to be sure that I understood correctly, you want to split the >> changes into two patches, like: >> >> a) add module owner to the manager struct and take it in >> __fpga_mgr_get(); move put_device() from __fpga_mgr_get() to >> fpga_mgr_get() and of_fpga_mgr_get(). >> >> b) add the mutex and the unregistered flag for protection against races. >> >> So that (b) can be reverted if try_module_get_safe() will be accepted? > > Yes, that's what I mean. > On second thought, I would prefer to send only the patches (a) for the manager, bridge, and region for the moment. As you said, the chances of having a race are slim (no crash has ever been reported to date). So, after (a), I think it is worth focusing first on try_module_get_safe() since it could also be useful for other subsystems. The (b) patches could always be applied later if try_module_get_safe() is not accepted. Thanks, Marco