]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
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)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 30 May 2012 23:43:41 +0000 (00:43 +0100)
commit 880bca3a2a6f159d7453e0cbcbfe2f1d8204d907 upstream.

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>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/class/cdc-wdm.c

index 38d8c3333132dcfa15aa82a1772ad74c28f17fef..40a3f0b17d3c6cc07057104e6d6c129560560a9e 100644 (file)
@@ -588,10 +588,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->intf->needs_remote_wakeup = 0;
-               else
+               } else {
+                       dev_dbg(&desc->intf->dev, "%s: device gone - cleaning up\n", __func__);
                        cleanup(desc);
+               }
        }
        mutex_unlock(&wdm_mutex);
        return 0;
@@ -807,6 +809,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);
 }