This should be called by a parallel port device driver that has registered itself using parport_register_driver when it is about to be unloaded.
When it returns, the driver's attach routine will no longer be called, and for each port that attach was called for, the detach routine will have been called.
If the caller's attach function can block, it is their responsibility to make sure to wait for it to exit before unloading.