Today, I got re_at_ permission and committed the destroy_dev_sched() KPI into the tree. As suggested by Nate Lawson, destroy_dev() tries to auto-detect "devdrn" deadlock condition and transforms destroy_dev() from d_close() csw method into destroy_dev_sched(). I together with Peter Holm tried to test the change as thoroughly as possible. The obvious problematic area are the races between device driver module unload and destroy_dev_sched(). At least smb(4) definitely has that race that shall be worked around by draining events with drain_dev_clone_events() and destroy_dev_drain(&cdevsw); see snp(4) change for example. Please, report issues caused by the patch to the list with me Cc:ed. Change of autodetection of deadlock in destroy_dev() was made in separate commit for ease of reverting.
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC