USB: cdc-wdm: add debug messages on cleanup
authorBjørn Mork <bjorn@mork.no>
Mon, 30 Apr 2012 07:26:11 +0000 (09:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Apr 2012 13:57:27 +0000 (09:57 -0400)
Device state cleanup is done in either wdm_disconnect or
wdm_release depending on the order they are called. Adding
a couple of debug messages to document the program flow.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Acked-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-wdm.c

index 650e1da4d2bf89a44a9b0ee886107bf4916472f6..4e8451ca2d6c81b4296816fa2c51ea58c95506ec 100644 (file)
@@ -620,10 +620,12 @@ static int wdm_release(struct inode *inode, struct file *file)
        if (!desc->count) {
                dev_dbg(&desc->intf->dev, "wdm_release: cleanup");
                kill_urbs(desc);
-               if (!test_bit(WDM_DISCONNECTING, &desc->flags))
+               if (!test_bit(WDM_DISCONNECTING, &desc->flags)) {
                        desc->manage_power(desc->intf, 0);
-               else
+               } else {
+                       dev_dbg(&desc->intf->dev, "%s: device gone - cleaning up\n", __func__);
                        cleanup(desc);
+               }
        }
        mutex_unlock(&wdm_mutex);
        return 0;
@@ -897,6 +899,8 @@ static void wdm_disconnect(struct usb_interface *intf)
        mutex_unlock(&desc->rlock);
        if (!desc->count)
                cleanup(desc);
+       else
+               dev_dbg(&intf->dev, "%s: %d open files - postponing cleanup\n", __func__, desc->count);
        mutex_unlock(&wdm_mutex);
 }