Hi Joerg, On Tue, Nov 05, 2019 at 01:15:08PM +0100, Joerg Roedel wrote: > On Thu, Oct 31, 2019 at 03:42:47PM +0000, Will Deacon wrote: > > Generally, I think unloading the IOMMU driver module while there are > > active users is a pretty bad idea, much like unbinding the driver via > > /sys in the same situation would also be fairly daft. However, I *think* > > the code in __device_release_driver() tries to deal with this by > > iterating over the active consumers and ->remove()ing them first. > > > > I'm without hardware access at the moment, so I haven't been able to > > test this myself. We could nobble the module_exit() hook, but there's > > still the "force unload" option depending on the .config. > > Okay, but besides the force-unload case, can we prevent accidential > unloading by taking a reference to the module in add_device() and release > it in remove_device()?
That's probably a sensible starting point, yes. In conjunction with the patch from Jean-Philippe to introduce bus_unset_iommu(), we might have a fighting chance of getting this to work. I'll spin a v2. Thanks! Will _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu