wdm_disconnect() waits for the mutex held by wdm_read() before calling wake_up_all(). This causes a deadlock, preventing device removal to complete. Do the wake_up_all() before we start waiting for the locks. Signed-off-by: Bjørn Mork <bjorn@mork.no> Cc: Oliver Neukum <oliver@neukum.org> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>  | 
			||
|---|---|---|
| .. | ||
| cdc-acm.c | ||
| cdc-acm.h | ||
| cdc-wdm.c | ||
| Kconfig | ||
| Makefile | ||
| usblp.c | ||
| usbtmc.c | ||