From 3f2bb0a3958850c291025cdb82e5285820af54b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= Date: Mon, 30 Apr 2012 09:26:11 +0200 Subject: [PATCH] --- yaml --- r: 303655 b: refs/heads/master c: 880bca3a2a6f159d7453e0cbcbfe2f1d8204d907 h: refs/heads/master i: 303653: f8bd0934eb1d6bb9a6f5e4c0287e404ec7b86f15 303651: df0edb559c2904e0bf8529c65ada18e3b897e508 303647: 82692af645df497d6190c5e55d2ff32c1921a6bf v: v3 --- [refs] | 2 +- trunk/drivers/usb/class/cdc-wdm.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5e92de1d9750..49edc9e8965a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 007bab91324e6337bb150ffc17b20cf829686370 +refs/heads/master: 880bca3a2a6f159d7453e0cbcbfe2f1d8204d907 diff --git a/trunk/drivers/usb/class/cdc-wdm.c b/trunk/drivers/usb/class/cdc-wdm.c index 650e1da4d2bf..4e8451ca2d6c 100644 --- a/trunk/drivers/usb/class/cdc-wdm.c +++ b/trunk/drivers/usb/class/cdc-wdm.c @@ -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); }