> > Why do we need to treat the 'unbind' call as a given thing? > If we know that we cannot handle online memory during unbind, > can't we just disallow unbind in that case?
No. Unbind is a violent operation - unbinds cannot fail, and a straight, uncoordinated unbind is essentially a `--force` flag: the admin accepts the risks. To your point, the admin either does the nice thing are they muck up the system. But we should still try to do something sane to defend the kernel, in this case we should try to prevent that task from becoming deadlocked. The only way to do that is to leak the resources. I'm making a small modification to this code to reinstate the legacy behavior when "state!=UNPLUGGED". ~Gregory

