Skip to contentSkip to conversation

usb: usbtmc: Fix disconnect/poll interaction

PATCH New Dave Penkler 1 participant 1 message Feb 18, 2016 USB

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 usb: usbtmc: Fix disconnect/poll interaction

When the device is disconnected poll waiters were not being woken.

Changes for v2:
- add commit summary
- add Fixes and Reported-by tags

Fixes eb6b92ecc0f9 ("Add support for receiving USBTMC USB488 SRQ notifications via poll/select")
---
 drivers/usb/class/usbtmc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/usb/class/usbtmc.c +2 -1
index 419c72e..917a55c 100644
@@ -1525,13 +1525,14 @@ static void usbtmc_disconnect(struct usb_interface *intf)
 	dev_dbg(&intf->dev, "usbtmc_disconnect called\n");
 
 	data = usb_get_intfdata(intf);
-	usbtmc_free_int(data);
 	usb_deregister_dev(intf, &usbtmc_class);
 	sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp);
 	sysfs_remove_group(&intf->dev.kobj, &data_attr_grp);
 	mutex_lock(&data->io_mutex);
 	data->zombie = 1;
+	wake_up_all(&data->waitq);
 	mutex_unlock(&data->io_mutex);
+	usbtmc_free_int(data);
 	kref_put(&data->kref, usbtmc_delete);
 }
 
Signature · 1 line
2.6.3