Hi,
this is a conservative port of a 2.6 fix for the pegasus driver which leaks
TASK_UNINTERRUPTIBLE in error cases. In case of an error the state
needs to be reset to TASK_RUNNING.
Regards
Oliver
Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]>
--- drivers/usb/pegasus.c.old 2006-12-03 23:03:22.000000000 +0100
+++ drivers/usb/pegasus.c 2006-12-03 23:05:43.000000000 +0100
@@ -147,6 +147,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
+ set_current_state(TASK_RUNNING);
err("%s: BAD CTRLs %d", __FUNCTION__, ret);
goto out;
}
@@ -197,6 +198,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
+ set_current_state(TASK_RUNNING);
err("%s: BAD CTRL %d", __FUNCTION__, ret);
goto out;
}
@@ -244,6 +246,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
+ set_current_state(TASK_RUNNING);
err("%s: BAD CTRL %d", __FUNCTION__, ret);
goto out;
}
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel